תכנות פונקציונלי
מתוך ויקיפדיה, האנציקלופדיה החופשית
תכנות פונקציונלי היא פרדיגמה תכנותית השמה דגש על פונקציות ככלי ההפשטה העיקריים. פונקציות הן אובייקטים מ"מחלקה ראשונה", כלומר הן ערכים לכל דבר, כמו מספרים או מחרוזות. ניתן לשלוח אותן לפונקציות אחרות כפרמטרים, והן יכולות לשמש כערכי החזר.
שפות תכנות פונקציונליות (כמו Haskell ו-LISP) מאופיינות בשימוש רחב ברקורסיה. תכנות פונקציונלי נקרא "טהור" אם אין בו שינוי מצב, כלומר אין בו משתנים או אובייקטים שמשנים את מצבם הפנימי. כל עיבוד מידע נעשה על ידי יצירת ערכים חדשים כנדרש. כתיבה כזו, מקלה על הוכחות נכונות התוכנה לפי ספסיפיקציות. שינוי מצב של המערכת נקרא בז'רגון של תכנות פונקציונלי תופעות לוואי. משום שכל תקשורת של תוכנית עם העולם החיצון (קלט/פלט) משנה מצב של אוביקט ומסיבות של נוספות, של נוחות או יעילות, גם שפות פונקציונליות "טהורות" מרכזות את המבנים בעלי תופעות הלוואי במקום מוגדר, לדוגמא, במבנה שנקרא מונדה