לוגו/משפטים ורשימות

משפטים ורשימות

עריכה

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

  • יצירת משפט נעשית בעזרת הסוגריים המרובעים ([]) או בעזרת הפקודה (sentence (se:
הפקודה [!print [Shalom Olam יוצרת משפט המורכב מהמילים Shalom" ו Olam", ומדפיסה אותו.
לאותה תוצאה נגיע בעזרת הפקודה !print se "Shalom "Olam.
אם נרצה לצרף מספר רב יותר של מילים נצטרך לתחום את הפקודה בסוגריים: (?print (se "Shalom "Olam! "How "are "you
  • נסו להפעיל את הפקודות שלמדנו קודם - הפקודות שבעזרתן ניתן לטפל במילים - על המשפט [!Shalom Olam]. שימו לב להבדלים בין טיפוסי הנתונים "מילה" ו"משפט".

משפטים ורשימות

עריכה

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

מדוע אנו מבחינים בין "רשימה" לבין "משפט"? הסיבה הפשוטה לכך היא, שרשימה יכולה להיות מורכבת גם מנתונים שאינם "מילים" בלוגו, בזמן ש"משפט" לוגו בנוי רק מ"מילים" בשפה. סיבה נוספת היא, שההגדרות "מילה" ו"משפט" מתאימות לניסיון החיים שלנו, ומעצביה של שפת לוגו רצו שהשפה תהיה דומה ככל האפשר לשפה האנושית, הן באוצר המילים שלה והן בהיגיון המדריך אותה. בהבדל מהמילים "מילה" ו"משפט" שאינן נפוצות בעולם המתכנתים, המילה "רשימה" היא מילה אופיינית לשפות תיכנות. כאשר מתכנת רואה את המילה "רשימה" הוא מניח שמדובר במושג התיכנותי המוכר לו. כתוצאה מכך, המתכנת מניח שרשימה יכולה להכיל גם איבר אחד בלבד (כלומר, שגם [Shalom] הוא רצף הנחשב ל"רשימה"), ושרשימה יכולה גם להיות ריקה (כלומר שגם הצירוף [] נחשב ל"רשימה"). הנחות אלה הן נכונות בשפות תיכנות רבות, וגם בלוגו, אבל אם נרצה "לתרגם" אותן לעולם המושגים של השפה האנושית, נגיע לתוצאות מוזרות (רוב האנשים לא יחשבו ש"אפס מילים" יכולות ליצור משפט!). מסיבה זו נוח יותר להשתמש במילה "רשימה" כאשר אנו מתייחסים לתופעה התיכנותית הכללית של "רצף של איברים", ולהשתמש במילה "משפט" כשאנו רוצים להתייחס לתופעה המשותפת ללוגו ולשפה האנושית, של "מילים" היוצרות "משפט".

  • הפקודה היוצרת רשימות בלוגו היא list והיא מתנהגת כמו sentence ובדומה ל word.
  • הפקודה listp, בדומה ל wordp שהוזכרה קודם, מקבלת קלט כלשהו וכותבת האם הוא "רשימה" או לא.
בעזרת פקודה זו ניתן לראות כי רשימה יכולה להיות ריקה. נסו לכתוב [] print listp ותיוכחו בכך.


הפרק הקודם:
מילים
משפטים ורשימות הפרק הבא:
קלט ופלט