## Lambda Functions
Lambda هي دوال مجهولة الاسم (anonymous) وصغيرة تُكتب في سطر واحد.
### الصيغة: ```python lambda parameters: expression ```
### الفرق بين def و lambda: ```python # def def square(x): return x ** 2
# lambda - مكافئة square = lambda x: x ** 2
# كلاهما يعطي نفس النتيجة print(square(5)) # 25 ```
### استخدامات Lambda: - `sort()` مع `key` - `map()` و `filter()` - كـ callback في أحداث - في أي مكان يحتاج دالة قصيرة
| 1 | # Lambda أمثلة |
| 2 | add = lambda a, b: a + b |
| 3 | print(add(3, 7)) # 10 |
| 4 | |
| 5 | is_even = lambda n: n % 2 == 0 |
| 6 | print(is_even(4)) # True |
| 7 | |
| 8 | # مع sorted |
| 9 | students = [("أحمد", 85), ("سارة", 92), ("علي", 78)] |
| 10 | sorted_by_score = sorted(students, key=lambda s: s[1]) |
| 11 | print(sorted_by_score) |
مثال 1: Lambda مع map و filter
| 1 | numbers = [1, 2, 3, 4, 5, 6, 7, 8] |
| 2 | |
| 3 | # تضعيف كل رقم |
| 4 | doubled = list(map(lambda x: x * 2, numbers)) |
| 5 | print("مضاعفة:", doubled) |
| 6 | |
| 7 | # الأرقام الزوجية فقط |
| 8 | evens = list(filter(lambda x: x % 2 == 0, numbers)) |
| 9 | print("الزوجية:", evens) |
مثال 2: Lambda مع sort
| 1 | people = [ |
| 2 | {"name": "أحمد", "age": 30}, |
| 3 | {"name": "سارة", "age": 25}, |
| 4 | {"name": "علي", "age": 35} |
| 5 | ] |
| 6 | |
| 7 | # ترتيب حسب العمر |
| 8 | by_age = sorted(people, key=lambda p: p["age"]) |
| 9 | for p in by_age: |
| 10 | print(f"{p['name']}: {p['age']}") |