מפגש 5 מתוך 10 · 62 דקות

עצי נתונים

הנושא שחוסם את כולם, ואיך עוברים אותו

על המפגש

מה קורה כאן

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

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

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

ובסוף, שתי הפקודות שפותרות את רוב המקרים: flatten שמאחדת הכל לענף אחד, ו-graft שמפצלת כל איבר לענף משלו.

הנושאים

מה נלמד, לפי הסדר

הנושאים מופיעים לפי הסדר שבו הם נלמדים במפגש.

  1. למה זה חוסם: הדוגמה של העיגולים והרדיוסים
  2. אינדקס, פריט, רשימה, ענף
  3. איך גראסהופר מתאים בין שתי רשימות
  4. מה קורה כשרשימה אחת נגמרת לפני השנייה
  5. הנתיב של ענף, ואיך קוראים אותו
  6. Flatten: לאחד הכל לרשימה אחת
  7. Graft: לפצל כל איבר לענף
  8. מיון, פיצול וחיבור של רשימות
  9. לקרוא את מספרי האיברים במקום לנחש
מושגים

המילים שכדאי להכיר

רשימה (List)
אוסף ערכים שיוצא מפלט אחד. הפקודה הבאה תפעל על כל אחד מהם.
ענף (Branch)
רשימה בתוך רשימה. עשר עקומות שכל אחת מחולקת לעשר נקודות = עשרה ענפים.
נתיב (Path)
הכתובת של ענף, נראית כך: {3;0;1;9}. ככה מגיעים בדיוק לנתון שרוצים.
התאמת נתונים
הכלל שקובע מה פועל על מה. הבנה שלו מונעת את רוב הבאגים.
קפיצה מהירה

מתי כל מונח נשמע לראשונה

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

  1. סליידר
  2. דומיין
  3. מרחק
  4. וקטור
  5. אקסטרוד
  6. צבע
  7. פאנל
מה יוצא מזה

בשורה אחת

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

לחוברות ולקבצי התרגול ←