top of page

רקורסיה, תנאי עצירה וקול פנימי

רקורסיה היא פונקציה שקוראת לעצמה עד לתנאי עצירה (ללא תנאי עצירה, מדובר ברקורסיה אין סופית). נסביר באמצעות דוגמה קלאסית - חישוב עצרת (זוכרים מה זה עצרת? 4!=1*2*3*4). הפונקציה תקרא לעצמה עד לתנאי העצירה - עצרת של 0 שווה 1 - ואז תסתמך על תוצאות כל שלב כדי להחזיר את התוצאה הרצויה (דוגמה בתמונות).


ואיך זה קשור לקול פנימי? במובן מסויים אפשר לדמיין איך בגיל מאוד מאוד צעיר, נגיד כשלמדנו ללכת, נוצר בתוכנו קול פנימי בסיסי שמתפקד כמו מן תנאי עצירה. הקול הזה יכול להיות ״אם אתה נופל, תקום ותנסה שוב״ או ״ברור שאתה נופל, זה מה שתמיד יקרה לך״. ובעצם, בכל מיני מצבי חיים שדומים ל״נפילה״, נגיד פיטורים מהעבודה, אנחנו קוראים לפונקציה שמזכירה לנו איך התמודדנו עם הנפילה האחרונה, והיא קוראת לנפילה האחרונה לפניה וכך הלאה, עד שאנחנו מגיעים לנפילה הראשונה שחווינו ובה נוצר הקול הפנימי וממנה אנחנו מסיקים גם על הנפילה הנוכחית.


או כמו שאמר ויקטור חסון בגבעת חלפון: ״מר חסון, אם המצרים באים, מה אתה עושה? -- מה שעשינו ב־56'. מה... מה עשיתם ב־56'? --"מה שעשינו ב־48',אין יותר טוב מזה, בטח!. ומה עשיתם ב־48'? --שלושים שנה, לך תזכור״ <<זה תנאי העצירה של ויקטור חסון.


מעניין לנסות לחשוב מה ״תנאי העצירה״ שלנו בכל מיני פונקציות של החיים, אותם תנאי עצירה שמאפשרים לנו לצאת מהלופ של עצמנו, והאם הם מביאים לתוצאה רצויה?

פוסטים אחרונים

הצג הכול

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

חלק מהסיפור שמעצבן בקוד לגאסי זה העובדה שאנחנו לרוב ״יורשים״ אותו, ובעצם לא כתבנו אותו בעצמנו. לכן, כשאנחנו מנסים לצלול פנימה ולעבוד...

דדלוק Deadlock

קיפאון, או deadlock, הוא מצב שבו שתי פעולות מחכות כל אחת לסיומה של האחרת, על כן הן לעולם אינן מסתיימות והמערכת נכנסת למצב של קיפאון....

חלומות ו-obfuscation

ערפול, obfuscation, הוא מונח שמתאר כתיבת קוד באופן שמקשה על אדם אחר לקרוא ולהבין אותו. ‬למה בעצם לעשות זאת? obfuscation יכול לשמש כאמצעי...

Comments


כשעזבתי את עבודתי כראש צוות בחברת הייטק והתחלתי את לימודי התואר השני בפסיכולוגיה קלינית, צצו לי מדי פעם נקודות חיבור בין העולמות. את נקודות חיבור אלו, העליתי על הכתב:

bottom of page