بايثون: البرمجة الوظيفية Lambda و Map و Filter
البرمجة الوظيفية هي نمط برمجي يعتمد على الدوال الخالصة (Pure Functions) وتجنب الحالة القابلة للتغيير. بايثون تدعم البرمجة الوظيفية من خلال دوال مثل map, filter, reduce والدوال المجهولة lambda.
دالة Lambda
دالة مجهولة صغيرة تكتب في سطر واحد.
# دالة عادية
def square(x): return x ** 2
# نفس الدالة باستخدام lambda
square = lambda x: x ** 2
print(square(5)) # 25
# مثال آخر: جمع عددين
add = lambda a, b: a + b
دالة Map
تطبق دالة على كل عنصر في متتالية وتعيد النتائج.
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # [1, 4, 9, 16, 25]
دالة Filter
تصفي المتتالية حسب شرط معين.
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # [2, 4, 6, 8]
دالة Reduce
تطبق دالة تراكمياً على العناصر لتختزلها إلى قيمة واحدة.
from functools import reduce
numbers = [1, 2, 3, 4, 5]
sum_all = reduce(lambda a, b: a + b, numbers)
print(sum_all) # 15
تمارين
التمرين 1: استخدم map و lambda لتحويل قائمة درجات الطلاب من 0-20 إلى نسب مئوية.
التمرين 2: استخدم filter لتصفية الأعداد الأولية من قائمة أعداد من 1 إلى 50.
للمزيد من الدروس، راجع درس بايثون: الدوال Functions ودرس بايثون: القوائم Lists.
مدونة التربية و التعليم في الجزائر – دروس، فروض، نتائج امتحانات مدونة التربية والتعليم في الجزائر | تحضير الدروس، فروض واختبارات، نتائج البكالوريا وBEM، مسابقات التوظيف، والتوجيه المدرسي للطلاب وأولياء الأمور.