Yorick (שפת תכנות)

הפעלה

בעת התקנת השפה, מקבלים תיקיה ששמה מתחיל ב"yorick", ובתוכה יש שתי תיקיות עם קובצי הפעלה:
התיקייה bin נועדה לעבוד בתוך שורת הפקודה של Windows, ואילו התיקייה binmfc פותחת חלון בממשק גרפי.
בשני המקרים, מקבלים ממשק להקלדת פקודות וביצוע מיידי (כמו בשפות אחרות המשתמשות ב-interpreter).

קובצי קוד

מקובל לתת לקובצי קוד של yorick את הסיומת i.
כדאי למקם את הקבצים בתיקיית שבה נמצאים קובצי ההרצה של הטרמינל (binmfc) כיון שהיא מוגדרת כספריית ברירת המחדל שבה המפרש מחפש את הקבצים. בכל מקרה ניתן לעשות שימוש בפקודת cd כדי לשנות את התיקיה שבה המפרש מחפש את הקבצים.
>cd, "directory_name"
כדי לדעת מהי התיקייה הנוכחית יש להפעיל את הפונקציה get_cwd
>get_cwd()
כדי להכליל קובצי קוד בתוכנית יש לבצע פקודת include
>include, "file_name"
אפשרות נוספת להכללת קובץ קוד כבר בשלב הפעלת התוכנית היא באמצעות פקודת include בשורת הפקודה בה אנו מפעילים את yorick:
>yorick -i "file_name"
ניתן גם לתת כתובת מלאה של הקובץ, ככל כללי העבודה בשורת הפקודה.
בכל מקרה של הכללת קובץ - הפעולה מתבצעת כמו בשפת C ו-C++, כלומר: הכללת קובץ שקולה להקלדתו במיקום הנוכחי אות באות.

משתנים

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

תחום ההכרה של משתנים

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

המרות

המרה ל-string: בדומה לפונקציה toString של #c, קיימת פונקציה בשם pr1 שממירה את הביטוי שמתקבל כפרמטר ל-string.
הפונקציה strchar ממירה בין מחרוזת למערך של תווים, ולהפך.
המרה בין char ל-int באמצעות המרה מרומזת:
>ch='a'>a+0>97

מצביעים ואיסוף זבל

ניתן להשתמש במצביעים באמצעות התו &, כמו בשפת C++ (זהו שינוי משמעותי לעומת פייתון שאינה תומכת במצביעים).
נשים לב, שכאשר אנו מציבים ערך לתוך משתנה שמוצבע על ידי משתנה אחר - זה גורם להגדרת משתנה חדש, ולא משנה את הישן. אם רוצים לשנות את הערך ולא להגדיר חדש צריך להשתמש בשני האופרטורים * ו-& ביחד. לדוגמה:
>*&x=9
איסוף זבל (Garbage collection) מתבצע בשיטת מונה-שימושים (Reference counting), שכאשר הוא מתאפס אז האובייקט נמחק.
השפה לא תומכת באריתמטיקה של מצביעים, וגם לא בפונקציות-הורסות (כיוון שאין מחלקות).

אובייקטים - עצמים

השפה לא מכירה במחלקות בעלות פונקציות, אלא במבנים (structs) בלבד.
הצהרה על struct:
>struct x{int a,b,c; char d;}
בניית מופע של x:
>x1=x(a=1, b=2, c='c')
גישה לאחד משדות המופע מתבצעת על ידי האופרטור ".":
>x1.a

הגדרת פונקציה

דוגמה להגדרה של פונקציה שממירה string ל-int:
func toInt(n_string){
 n_chars=strchar(n_string)
 n=0
 for (i=1;i<strlen(n_string)+1;i++)
 n=n*10+n_chars(i)-'0'
 return n}
לא ניתן להציב ערכי ברירת מחדל לפמטרים של הפונקציה, אך ניתן להשמיט פרמטרים, ואז הם יקבלו ערך nil (המוצג במסך כמערך ריק). מותר גם לדלג על משתנה אמצעי אך בתנאי שלא נשמיט את הפסיק.
אין אפשרות של הצבת פרמטרים לפי שמות.

כתיבה למסך

כתיבה למסך מתבצעת בשתי שיטות: או באמצעות פונקציית write (כאשר הפרמטר הראשון איננו אובייקט של קובץ פתוח) או באמצעות פונקציית print.
יש ביניהן כמה הבדלים, כשבאופן כללי ניתן לומר שהפונקציה print מראה את הערך כפי שהוזן, והפונקציה write מדפיסה בצורה קריאה יותר.

קריאה מהמקלדת

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

Case sensitivity

השפה רגישה לאותיות קטנות או גדולות (Case sensitivity).

יכולות גרפיות

לyorick יש יכולות מובנות של יצירת גרפים, למשל:
> plg , [1,2,3],[1,4,9]
ייצור גרף של המערך הראשון כפונקציה של השני

פונקציית help

לקבלת הסבר ודוגמאות עבור כל פקודה בשפה יש לכתוב במפרש help ולאחר מכן פסיק ואת שם הפקודה.
לדוגמה:
> help, help