ما هي البرمجة الوظيفية؟
إذا فهمت الدرس السابق عن البرمجة كائنية التوجه (OOP)، فسيكون فهم البرمجة الوظيفية (Functional Programming) أسهل بكثير.
في البرمجة كائنية التوجه كنا نبني نموذجًا (Class)، ثم ننشئ منه كائنًا (Object) أو أكثر.
أما في البرمجة الوظيفية، فالفكرة أبسط بكثير.
بدلاً من التفكير في النماذج والكائنات، نركز على الدوال (Functions) التي تستقبل بيانات، تعالجها، ثم تعيد النتيجة.
بمعنى آخر:
مدخلات (Input) → معالجة (Processing) → مخرجات (Output)
وهذه هي الفكرة الأساسية التي يقوم عليها هذا النمط.
مثال
لنفترض أننا نريد إنشاء برنامج يجمع رقمين:
function sumTwoNumbers(number1, number2) { return number1 + number2;}
console.log(sumTwoNumbers(10, 20));كيف يعمل هذا المثال؟
في البداية استخدمنا الكلمة المفتاحية function لإنشاء دالة (Function)، ثم أعطيناها اسمًا هو sumTwoNumbers.
تستقبل الدالة قيمتين هما number1 وnumber2، ثم تعالج هاتين القيمتين بإجراء عملية الجمع بينهما.
بعد ذلك استخدمنا الكلمة المفتاحية return لإرجاع النتيجة.
وأخيرًا استدعينا الدالة وأرسلنا إليها الرقمين 10 و20، فأعادت لنا القيمة 30.
لاحظ أن الدالة استقبلت بيانات، وعالجتها، ثم أعادت نتيجة، وهذا هو المبدأ الأساسي للبرمجة الوظيفية.
البرمجة الوظيفية ليست مجرد دوال
قد يبدو من هذا المثال أن البرمجة الوظيفية تعني “استخدام الدوال فقط”، لكن الحقيقة أنها أوسع من ذلك.
فهي تعتمد على مجموعة من المبادئ، مثل كتابة دوال صغيرة، وتقليل التأثيرات الجانبية، وجعل الدوال قابلة لإعادة الاستخدام والاختبار بسهولة.
لكن في هذه المرحلة يكفي أن تفهم الفكرة الأساسية: الدالة تستقبل مدخلات، وتعالجها، ثم تعيد مخرجات.
ماذا يجب أن تتذكر؟
- البرمجة الوظيفية هي أحد النماذج البرمجية (Programming Paradigms).
- تعتمد على استخدام الدوال (Functions) لمعالجة البيانات.
- تستقبل الدالة مدخلات (Inputs)، وتعالجها، ثم تُرجع مخرجات (Outputs).
- هذا الدرس يشرح الفكرة العامة فقط، أما المبادئ المتقدمة للبرمجة الوظيفية فسنتناولها لاحقًا.