מוערכת למספר 16.
לא כל ה-s-expression הם תוכניות הגיוניות. אם נקליד ל-listener את הביטוי (1.2) ה-listener של
Scheme יחשוב שזו טעות.
Scheme מעריכה תבנית של רשימה ע"י כך שהיא בוחנת את האיבר הראשון של התבנית. אם הוא מוערך לפרוצדורה אזי
שאר האברים מוערכים לארגומנטים של הפרוצדורה והיא מופעלת עליהם.
אם ראש התבנית הוא תבנית מיוחדת הערכה מתקדמת באופן ייחודי על התבנית.
חלק מהתבניות המיוחדות כבר ראינו לדוגמא :begin , define ו-!set.
begin גורמת לשאר התת תבניות להיות מוערכות לפי הסדר והתוצאה של כל התבנית היא
התוצאה של התת תבנית האחרונה. define מאתחלת לראשונה את המשתנה ו-!set משנה את הקישורים של המשתנה.
3.1 פרוצדורות
הכרנו לא מעט פרוצדורות פרימיטיביות לדוגמא, string->list, cons ודומיהן.
משתמשים יכולים ליצור פרוצדורות משלהם ע"י שימוש בפרוצדורה מיוחדת lambda.
הדוגמא הבאה מגדירה פרוצדורה המוסיפה 2 לארגומנטים שלה: