ML (שפת תכנות) – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
אין תקציר עריכה
שורה 22:
ML נחשבת לשפה פונקציונלית שאיננה 'טהורה', בשל העובדה שהיא מאפשרת תוצאות לוואי בקריאות לפונקציות, בשונה משפות פונקציונליות 'טהורות' כגון [[Haskell]].
 
מאפייני השפה כוללים העברת פרמטרים על פי ערכם, [[פונקציה (תכנות)|פונקציות]] כטיפוסים "ממחלקה ראשונה", ניהול זיכרון אוטומטי בעזרת מנגנון [[איסוף זבל (מדעי המחשב)|איסוף זבל]], [[מדעי המחשב|פולימורפיזם]] פרמטרי (כלומר פולימורפיזם בקריאה לפונקציות), [[מערכת טיפוסים|טיפוסיות]] חזקה וסטטית, מנגנון הסקת טיפוסים ו[[טיפול בחריגות (תכנות)|טיפול בחריגות]].
 
בשונה משפת Haskell,{{כ}} ML נוקטת בחישוב ביטויים מוקדם (Eager evaluation). עם זאת, חישוב ביטויים עצל (Lazy evaluation) ניתן להשגה באמצעות מנגנון סְגוֹר (Closure).