برمجة وظيفية


البرمجة الوظيفية البرمجة الوظيفية هي البرمجة التي تتعامل مع الحسابات كحل الدوال الرياضية باتباع قواعد وقوانين رياضية. الهدف من البرمجة الوظيفية محاكاة طريقة حل الدوال الرياضية بأكبر درجة ممكنة.هذا الهدف هو ماجعل البرمجة الوظيفية تختلف تمامًا عن البرمجة باستخدام لغات الأوامر في طريقة تعاملها مع المشكلات وحلها.

اللغات الوظيفية

في اللغات الوظيفية البحتة لا يوجد أي استخدام للمتغيرات أو جمل المساواة مما يعطي حرية أكبر للمبرمج بحيث لايهتم للأماكن المحجوزة لبرنامجه في الذاكرة.كذلك يتم التحكم في مسار تنفيذ البرنامج باستخدام الدوال الرياضية والجمل الشرطية والاستدعاء الذاتي بدلاً من تنفيذه بطريقة متسلسلة وباستخدام التكرار (iterative repetition) كما هو الحال مع لغات الأوامر.

ميزة أخرى مهمة في هذه اللغات وهي أنها تُعطي نفس النتيجة إذا أُعطيت نفس المتغيرات، هذه الخاصية هي ما تُطلق عليهاالشفافية المرجعية (referential transparency).بالرغم من أن تنفيذ اللغات الوظيفية يتم بواسطة المترجمات (interpreters) إلا أنه يمكن عمل(compilation) لها.كذلك تحوي هذه اللغات تركيب هيكلي بسيط جدًا.الدوال المعقدة يتم بنائها باستخدام مايُطلق عليه نماذج وظيفية (functional forms) أي أن الدوال تستخدم كمتغيرات مرسلة أو قيم مرتجعة أو كلاهما.

بالرغم من أفضلية اللغات الوظيفية البحتة على تلك المستخدمة كلغات أوامر إلا أن ضعف تنفيذها على الحاسبات المبنية على نموذج فون نيومان (von Neumann) حد من استخدامها وانتشارها.

أشهر هذه اللغات وأقدمها هي الـ Lisp و منها أيضا Haskell و Scheme و ML ولغات أخرى كثيرة ومتعددة

المراجع

concepts of programming languages By Robert W.Sebesta

bn:ফাংশনভিত্তিক প্রোগ্রামিং bs:Funkcionalno programiranje ca:Programació funcional cs:Funkcionální programování da:Funktionsprogrammering de:Funktionale Programmierung el:Συναρτησιακός προγραμματισμός Functional programming]] es:Programación funcional et:Funktsionaalne programmeerimine fa:برنامه‌نویسی تابعی fi:Funktionaalinen ohjelmointi fr:Programmation fonctionnelle gl:Programación funcional he:תכנות פונקציונלי hr:Funkcijsko programiranje id:Pemrograman Fungsional it:Programmazione funzionale ja:関数型言語 ko:함수형 프로그래밍 ms:Pengaturcaraan kefungsian nl:Functioneel programmeren pl:Programowanie funkcyjne pt:Programação funcional ro:Programare funcțională ru:Функциональное программирование rue:Функціоналне проґрамованя sh:Funkcijsko programiranje sk:Funkcionálne programovanie sr:Функционално програмирање sv:Funktionell programmering ta:பணிமுறை நிரல் மொழி tr:Fonksiyonel programlama uk:Функційне програмування vi:Lập trình hàm zh:函數程式語言