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

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
נמחק טקסט "אתם מכוערים קקה" שהוסף ע"י מספים כלשהו.
שורה 21:
 
==פונקציה==
פונקציות בשפות תכנות, שואבות את שמן מ[[פונקציה|פונקציות מתמטיות]], ואכן מימוש של פונקציה מתימטית בשפת תכנות יעשה בדרך כלל באמצעות מבנה ההפשטה של פונקציות. אולם, לעתים קרובות, פונקציות בשפות תכנות אינן ניתנות לתיאור כפונקציות מתימטיות. בתכנות פרוצדורלי, כגון ב[[שפת C]], אין הבדל מהותי בין פונקציה לשגרה, ולא תמיד יש הבחנה בתחביר בין שגרות לפונקציות - לעתים ההבדל היחיד הוא השימוש בערך ההחזרה מפונקציה על מנת לדווח על מידת הצלחת הפעולה שהתבצעה. בשפת [[פסקל (שפת תכנות)|פסקל]] קיים הבדל תחבירי בין פונקציה המחזירה ערך לבין פרוצדורה שאינה מחזירה ערך. אתם מכוערים קקה
 
עם זאת, באופן מהותי, קריאה לפונקציה מהווה [[ביטוי (מדעי המחשב)|ביטוי]], כלומר התייחסות לערך כלשהו, לעומת קריאה לפרוצדורה המהווה "פקודה", כלומר שינוי מצב של משתנים בדרך כלשהי. ב[[תכנות פונקציונלי]], פונקציה היא [[טיפוס נתונים]] בסיסי לכל דבר, והוא לב ליבה של השפה. בשפות פונקציונלית (בהן [[LISP]], [[Haskell]], או [[ML]]) לפונקציות, ולביטויים בכלל, אין תוצאות לוואי, בשאיפה. דבר זה מקל על הוכחת נכונות של קטע קוד, ולעתים גם על [[עיבוד מקבילי]].