תכנות פונקציונלי – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ ←‏בשפות תכנות לא פונקציונליות: שפת התבניות היא פונקציונלית
שורה 38:
val it = 10 : int
</source>
 
החל מתקן C++11, שפת התבניות של ++C מאפשרת העברה של תבניות כפרמטר לתבניות אחרות, ובכך יש תמיכה ישירה בתבניות (שהן ה"פונקציות" בשפה) ממעלה גבוהה.
 
====בשפות תכנות לא פונקציונליות====
שורה 44 ⟵ 46:
כל שפה התומכת בתכנות מונחה-עצמים מאפשרת העבדה של אובייקטים שיש להם מתודות, וניתן להשתמש באובייקט כ"ידית" המחזיקה פונקציה (למשל בשפת ג'אווה, אף שהיא איננה תומכת בהעברה של המתודה כשלעצמה כפרמטר). תבנית העיצוב Strategy מגדירה תרחישים וטכניקות לשילוב של המנגנון הזה בעיצוב של תוכניות מונחות-עצמים.
 
תכנות מונחה-אירועים הוא פרדיגמה תכנותית המבוססת על היכולת לרשום קוד לביצוע במועד שאיננו ידוע מראש; העברת פונקציה כפרמטר משתלבת היטב עם הטכניקה הזאת.
 
החל מתקן C++11, שפת התבניות של ++C מאפשרת העברה של תבניות כפרמטר לתבניות אחרות, ובכך יש תמיכה ישירה בתבניות (שהן ה"פונקציות" בשפה) ממעלה גבוהה.
=== ביטויי למבדא ===
בתכנות פונקציונלי ניתן ליצור פונקציה "על הדרך", כביטוי בתוך ביטוי אחר. כך למשל במקום הדוגמה של filter לעיל ניתן ליצור את הפרדיקט בתוך הקריאה ל-filter: