إذن ما هي البرمجة الوظيفية؟
البرمجة الوظيفية تدور حول فصل الاهتمامات ، أي البرمجة الموجهة للكائنات تعمل أيضًا
، أليس كذلك؟
الأمر كله يتعلق بتعبئة الكود الخاص بنا في أجزاء منفصلة بحيث يكون كل شيء منظمًا جيدًا في كل جزء من الكود
الخاص بنا.
ويتم تنظيم كل جزء بطريقة منطقية بناءً على الوظيفة.
لذلك عندما نقول فصل الاهتمامات ، فإننا نعني أن كل جزء يهتم بشيء واحد جيد فيه.
نتذكر في قسم البرمجة الموجهة للكائنات كيف كان لدينا فئتان
لتقسيم سمات وطرق ، دعنا نقول ، فئة المعالج وفئة آرتشر.
والبرمجة الوظيفية لديها هذه الفكرة أيضًا في فصل الاهتمامات ، ولكنها أيضًا تفصل البيانات
والوظائف.
هذه هي الطريقة التي ينظر بها المبرمج الوظيفي إلى العالم.
بدلاً من الجمع بين الأساليب والسمات ، نقوم بفصلها لأن هناك شيئين منفصلين.
هناك بيانات وهذه البيانات يتم التفاعل معها والتعامل معها.
لكننا لن نجمع كل من البيانات والوظائف كقطعة واحدة في كائن كما رأينا في البرمجة الموجهة
للكائنات.
الآن لا يوجد تعريف صحيح لما هو وظيفي وما هو غير فعال.
لكن بشكل عام ، تركز اللغات الوظيفية على البساطة ، حيث يتعلق الأمر بالبيانات والوظائف
، لأنه في معظم نماذج البرمجة الوظيفية ، ليس لدينا فكرة عن الفئات والكائنات.
بدلاً من ذلك ، تعمل الوظائف على هياكل بيانات محددة جيدًا مثل القوائم والقواميس التي رأيناها
بدلاً من الانتماء إلى بنية البيانات هذه إلى كائن.
ولكن في نهاية اليوم ، فإن الهدف من نموذج البرمجة الوظيفية هو نفس النموذج الموجه للكائنات.
إنها فكرة جعل الكود الخاص بنا نظيفًا ومفهومًا وسهل التوسيع.
وهذا يعني أنه يمكننا تطوير الكود الخاص بنا وجعله أفضل وأفضل وجعل الآخرين يأتون ويوسعون الكود الخاص بنا.
من السهل الحفاظ عليها.
إنها تحافظ على كودنا جافًا حتى لا نكرر أنفسنا بالإضافة إلى الحفاظ على كفاءة ذاكرة
الكود لأننا لا نخزن المعلومات في كل مكان.
الآن ، عندما نأتي إلى البرمجة الوظيفية ، لدينا ركيزة مهمة للغاية.
وعلى عكس البرمجة الشيئية ، حيث لدينا تلك الركائز الأربعة للتغليف والتجريد
والوراثة وتعدد الأشكال.
إذا كنت ترغب في تقسيم الأشياء في البرمجة الوظيفية ، فكل ذلك يعود إلى مفهوم الوظائف
البحتة ، وهذا شيء سنستكشفه خلال مقطعي الفيديو التاليين.
لكن الفكرة هنا هي أن هناك فصلًا بين بيانات البرنامج وسلوك البرنامج.
لذلك دعونا نتعرف أكثر على الوظائف البحتة.
ماذا يقصدون؟
ما هم؟