/Functional Programming and Thinking in Types in Haskell

Functional Programming and Thinking in Types in Haskell

 السلام عليكم ورحمة الله بركاته

نُقدم لكم اليوم مقال تمهيدى لسلسلة مقالات عن Functional Programming and Thinking in Types in Haskell Course

سنُجيب على عدة تساؤلات منها:

– الفرق بين Functional Programming و Imperative Programming

– العلاقة بين  Object Oriented Programming Functional Programming ~  Imperative Programming

what!?لا تقلق فاﻷمر بسيط  إن شاء الله D:

لنبدأ بأول تساؤل: الفرق بين Functional Programming و Imperative Programming

سنُجيب عن هذا التساؤل عن طريق مثال لتوضيح الفكرة

المثال: إيجاد مضروب Factorial لعدد (5)

الحل باستخدام Imperative Programming

1. نقوم ببرمجة loop خمس مرات
2. كل مرة نقوم بتنفيذ الـ loop يتم إضافة العدد (5) لمُتغير (fact)
3. بعد انتهاء الـ loop نقوم بطباعة قيمة المتغير (fact) فى هذه الحالة ستكون القيمة 120

مثال توضيحى : إيجاد مضروب عدد ما باستخدام الجافا

الحل باستخدام  Functional Programming

لنتعرف أولاً على الصيغة الرياضية للمضروب

1. نُعرف Function تستقبل مُتغير واحد وهو (n)
2.. ثم نكتب الشرط الآتى :
– فى حالة n = 0 .. قيمة الـ return تكون 1
– وفى حالة n > 0 .. تصبح قيمة الـ return كالتالى :(n-1)! * n

Haskell Code

بالنظر للحلين السابقين نستنتج :

– Functional Approach : ما هو المضروب ؟
– Imperative Approach : كيف يعمل المضروب ؟

باختصار

Functional is about WHAT while Imperative is about HOW

GotIt

إذا أردت معرفة المزيد عن الفرق بين Functional Programming و Imperative Programming يمكنك الاطلاع على هذا المقال

والآن نُجيب عن التساؤل الثانى : العلاقة بين  Object Oriented Programming –  Functional Programming –  Imperative Programming

هل كل لغات Object Oriented تخضع لـ Imperative Style ؟

ربما ورد على ذهنك هذا السؤال لنعرف اذا كانت الإجابة بنعم ام لا

Object Oriented يمكن أن تكون Imperative ويمكن أن تكون Functional ، الشكل التالى يوضح اﻷمر:

Answer

للمزيد عن هذا الموضوع، هذا المقال يوضح بعض تصنيفات لعدد من لغات البرمجة

نتمنى أن يكون الموضوع واضحًا … وليكون أكثر وضوحًا شاهد أول Session

تابعنا على صفحة الايفنت حيث يُمكنك طرح أى سؤال أو على صفحة الكورس على instalk


فى المرة القادمة بإذن الله سنتعرف أكثر عن الـ Functional Programming عن طريق لغة البرمجة Haskell

[divider scroll_text=” “]