רקורסיה – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ שחזור – 1. נא לא להסיר את תנאי העצירה. 2. מספיק לחזור על הבדיחה פעם אחת ברצף.
אין תקציר עריכה
שורה 42:
במקרים מסוימים, אלגוריתם רקורסיבי פשוט ובהיר יותר מאלגוריתם איטרטיבי שקול.
 
אלגוריתמים רקורסיביים נתמכים במרבית [[שפות תכנות|שפות התכנות]] על ידי תמיכה של השפה בקריאה רקורסיבית של פונקציות. עם זאת, לקריאות רקורסיביות (כמו ל[[קריאה לפונקציה|קריאות לפונקציות]] בכלל) ישנה עלות בזמן הריצה של התוכנית, ולכן מבצעות שפות תכנות רבות, ובפרט [[תכנות פונקציונלי|שפות פונקציונליות]], אופטימיזציה של קריאות רקורסיביות (הנקראות "[[רקורסיית זנב|רקורסיות זנב]]") והופכות קוד הנכתב באמצעות קריאות רקורסיביות לקוד ליניארי המבוצע בפועל באמצעות [[לולאה (תכנות)|לולאות]].
 
ישנן שפות רקורסיביות מעצם טבען, שבהן אימות שאילתה מתבצע בעזרת קריאות חוזרות של סט החוקים הנתון עד לאימות השאילתה או ריצה על כל הפתרונות האפשריים (במקרה בו השאילתה פתוחה), כגון השפה הפונקציונלית [[LISP]] או השפה הלוגית [[פרולוג (שפת תכנות)|Prolog]].