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

טיפוסים

בין הקבועים הקיימים ב-Scheme ניתן למצוא מספרים, קבועים בוליאנים-T# ו-F#, רשימה ריקה () ומחרוזות. להלן מספר דוגמאות של קבועים ומחרוזות:
A, abcd, THISISANATOM, AB12, 123, 9Ai3n, "A string"

אטומים משמשים לשמות משתנים ושמות פונקציות. רשימה היא סדרת אלמנטים המורכבת מאטומים או מרשימות אחרות. רשימות ב-Scheme נסגרות בעזרת סוגריים כמו ב-Lisp.
להלן מספר דוגמאות של רשימות:
(A B C)

(138 abcde 54 18)

(SOMETIMES (PARENTHESIS (GET MORE)) COMPLICATED)

()

רשימות יכולות להיות מיוצגות בעזרת סימונים פונקציונליים. הרשימה הריקה מיוצגת ע"י (). הפונקציה cons בונה רשימות מאלמנטים ורשימות באופן הבא:
רשימה של אלמנט אחד היא (()cons X) ורשימה של שני אלמנטים היא (())cons X (cons Y) .

טיפוסים פשוטים

הטיפוסים הפשוטים הקיימים ב-Scheme מסוכמים להלן:

טיפוס ערכים
משתנים בוליאנים T, F#
מספרים שלמים ונק' צפה
סמלים סדרות תווים
צמדים רשימות וצמדים מנוקדים
פרוצדורות פונקציות ופרוצדורות


טיפוסים מורכבים

הטיפוסים המורכבים הקיימים ב- Scheme מסוכמים להלן:


טיפוס ייצוג ערכים
רשימה רווח מפריד בין סדרת פריטים כלשהם


סוגי פרדיקטים

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

פרדיקט בודק אם
(boolean? arg) הארגומנט הוא בוליאני
(in(number? arg הארגומנט הוא מספר
(in(pair? arg הארגומנט הוא זוג
(in(symbol? arg הארגומנט הוא סמל
(in(procedure? arg הארגומנט הוא פונקציה
(in(null? arg הארגומנט הוא רשימה ריקה
(in(zero? arg הארגומנט הוא אפס
(in(odd? arg הארגומנט הוא אי זוגי
(in(even? arg הארגומנט הוא זוגי



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

Scheme מספקת את טיפוס הנתונים number, המכיל שלמים, רציונלים, ממשיים ומספרים מרוכבים. להלן כמה דוגמאות:
(+ 4 5 2 7 5 2) - is equivalent to ( 4 + 5 + 2 + 7 + 5 + 2)
(/ 36 6 2) - is equivalent to (frac{frac{36}{6}}{2})
(+ (* 2 2 2 2 2) (* 5 5)) - is equivalent to ( 2^{5} + 5^{2})



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

סימול פעולה
+ חיבור
- חיסור
* כפל
/ חלוקה למס' ממשי
quotient חלוקה למספר שלם
modulo מודולו