בתשובה להעלמה עפרונית, 30/12/06 16:39
427062
הסימניה מסמנת את הדף והשורה שממנה קפצת לדף של הרוטב. אחרי שאת מסיימת עם הרוטב, את חוזרת לסימניה. אם בדף של הרוטב הייתה עוד קפיצה, את צריכה עוד סימניה - את צריכה לחזור מקיצוץ הבצל לרוטב, ורק אחרי שתסיימי את הרוטב כולו לחזור לשורה שאחרי "הכן את הרוטב". כל פעם שאת קופצת, את מוסיפה לרשימת הדפים שאת צריכה לחזור אליהם כתובת/סימניה. כל פעם שאת מסיימת איפשהו, את חוזרת למקום האחרון שממנו קפצת. מחסנית.
427068
אז כל הסימניות יחד הן "מחסנית"? שזה מתורגם בשפת מחשבים ל"כל הכתובות ששולחות אל הפונקציה"?
אם כן, אז למה זה רלוונטי שמגדירים את זה כליפו או פיפו?
427072
הסימניות (הכתובות) נכנסות למחסנית / מסודרות במחסנית.
רלוונטיות: יש שלושה דפים בדוגמה שלנו - דף המתכון הראשי, דף הרוטב, ודף הבצל. בשורה חמש בדף הראשי היה כתוב "הכן את הרוטב", אז את רוצה להכין את הרוטב, ואחרי שאת מסיימת אותו, לעבור לשורה שש בדף הראשי. את משאירה סימניה, ואחריה את קופצת לדף של הרוטב. את עוברת על ההוראות שם אחת-אחת, עד שאת מגיעה לעשירית (שאיננה בהכרח האחרונה), שבה כתוב "קצוץ את הבצל". את משאירה סימניה חדשה, ועוברת לדף של הבצל. כשאת מסיימת עם הדף של הבצל, את צריכה לחזור לסימניה של הרוטב, לא זאת שבדף הראשי. אבל גם אסור לך להפטר מהאחת של הדף הראשי עדיין - עוד מעט תצטרכי אותה. אז לאיזו סימניה את חוזרת עכשיו? לאחרונה שיצרת. ואחריה? לזו שיצרת אחרונה באותו רגע (אולי יצרת מאז עוד, אולי לא).
427074
כאן הדוגמה של דורפל קצת "נתקעת", כי מחסניות באמת לא מהוות מחסנית. מצד שני, אולי אפשר להראות למה מחסנית כ"כ יעילה כאן.

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

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

חזרה לעמוד הראשי המאמר המלא

מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים