תכנות פונקציונלי – הבדלי גרסאות
תוכן שנמחק תוכן שנוסף
מ ←העברת פונקציה כפרמטר: ניסוח |
מ ←ביטויי למבדא: המשך haskell |
||
שורה 54:
=== ביטויי למבדא ===
בתכנות פונקציונלי ניתן ליצור פונקציה "על הדרך", כביטוי בתוך ביטוי אחר. כך למשל במקום הדוגמה של filter לעיל ניתן ליצור את הפרדיקט בתוך הקריאה ל-filter:
<source lang="
-- result: [1,2]
</source>
יצירת פונקציה בצורה כזאת מעלה את הצורך בתמיכה ב[[סגור (שפות תכנות)|סגור]] בשפת התכנות.
קיומם של ביטויי למבדא מאפשר חישוב עצל של ביטויים, דבר המאפשר גמישות ב[[#בקרת זרימה]]. הקוד הבא בשפת ML מדפיס "hello world":
<source lang="ocaml">
map (fn f => f()) [
שורה 68:
];
</source>
=== List Comprehension ===
שימוש משולב בפונקציות map ו-filter יחד עם ביטויי למבדא הוא נפוץ כל כך שבשפות מסויימות קיים תחביר מיוחד עבורו. אם בשפת ML כותבים:
|