افتح القائمة الرئيسية

تغييرات

تم إزالة 17 بايت ، ‏ قبل 9 سنوات
ط
تدقيق إملائي وتنسيق,
{{ويكي|تاريخ=أغسطس 2008}}
'''البرمجة الوظيفية'''
البرمجة الوظيفية هي [[البرمجة]] التي تتعامل مع الحسابات كحل الدوال الرياضية باتباع قواعد و قوانينوقوانين رياضية. الهدف من البرمجة الوظيفية محاكاة طريقة حل الدوال الرياضية بأكبر درجة ممكنة .هذا الهدف هو ماجعل البرمجة الوظيفية تختلف تمامًا عن البرمجة باستخدام لغات الأوامر في طريقة تعاملها مع المشكلات و حلها وحلها.
 
== اللغات الوظيفية ==
في اللغات الوظيفية البحتة لا يوجد أي استخدام للمتغيرات أو جمل المساواة مما يعطي حرية أكبر للمبرمج بحيث لايهتم للأماكن المحجوزة لبرنامجه في الذاكرة.كذلك يتم التحكم في مسار تنفيذ البرنامج باستخدام الدوال الرياضية و الجملوالجمل الشرطية و الاستدعاءوالاستدعاء الذاتي بدلاً من تنفيذه بطريقة متسلسلة و باستخداموباستخدام التكرار (iterative repetition) كما هو الحال مع لغات الأوامر.
 
ميزة أخرى مهمة في هذه اللغات و هيوهي أنها تُعطي نفس النتيجة إذا أُعطيت نفس المتغيرات ،المتغيرات، هذه الخاصية هي ما تُطلق عليهاالشفافية المرجعية (referential transparency) .بالرغم من أن تنفيذ اللغات الوظيفية يتم بواسطة المترجمات (interpreters) إلا أنه يمكن عمل(compilation) لها.كذلك تحوي هذه اللغات تركيب هيكلي بسيط جدًا .الدوال المعقدة يتم بنائها باستخدام مايُطلق عليه نماذج وظيفية (functional forms) أي أن الدوال تستخدم كمتغيرات مرسلة أو قيم مرتجعة أو كلاهما.
 
بالرغم من أفضلية اللغات الوظيفية البحتة على تلك المستخدمة كلغات أوامر إلا أن ضعف تنفيذها على الحاسبات المبنية على نموذج فون نيومان (von Neumann) حد من استخدامها و انتشارها.
 
أشهر هذه اللغات و أقدمها هي الـ Lisp
و منها أيضا Haskell و Scheme و ML و لغات أخرى كثيرة و متعددة
 
بالرغم من أفضلية اللغات الوظيفية البحتة على تلك المستخدمة كلغات أوامر إلا أن ضعف تنفيذها على الحاسبات المبنية على نموذج فون نيومان (von Neumann) حد من استخدامها و انتشارهاوانتشارها.
 
أشهر هذه اللغات و أقدمهاوأقدمها هي الـ Lisp
و منها أيضا Haskell و Scheme و ML و لغاتولغات أخرى كثيرة و متعددةومتعددة
 
== المراجع ==
916٬418

تعديل