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