Hy

**Hy** (או **Hylang**) היא שפת תכנות ממשפחת שפות Lisp אשר עוצבה על מנת לתרגם את הביטויים בה לעץ נתונים שנקרא Abstract Syntax Tree , (בקיצור AST), אשר מכיל את המבנה הכללי של הקוד (משתנים, תנאים, לולאות, קבועים, וכדומה). Hy הוצגה לראשונה בכנס הפייתון השנתי PyCon בשנת 2014 על ידי פול טגילמונטה.

בשפות ממשפחת Lisp בדרך כלל כותבים את הערכים והפעולות בתוך סוגריים. ביטויים בתוך הסוגריים הללו נקראים ביטויי S, (או באנגלית: S Expressions) והם ליוו את Lisp משלביה הראשונים.

בדומה למיפוי ביטויי ה-S ב-Kawa (מימוש של Scheme (ניב של שפת התכנות Lisp) ב-Java) וב-Clojure (ניב של Lisp ב-Java) לתוך ה-JVM, שמפרשת וממירה קוד ל-Java Bytecode (אוסף פקודות שהמעבד מבין), Hy אמורה לשמש כקצה קדמי לתחביר האבסטרקטי  של פייתון.

Hy, בדומה לניבי Lisp אחרים מתייחסת גם לפקודות מובנות בשפה ולקוד עצמו כמידע שניתן לשנות אותו. לכן היא תומכת בפרדיגמת תכנות ששמה מטא תכנות. ב-Hy ניתן להשתמש בספריות (קבצים המכילים קטעי קוד המוכנים לשימוש) בפייתון, כולל הספרייה הסטנדרטית (ספריה רחבת ממדים אשר מותקנת יחד עם המפרש של פייתון ) שניתן לייבא אותה ולגשת אליה במקביל לקוד ה-Hy, כך שלבסוף שניהם יומרו לעץ הנתונים AST של פייתון.

## דוגמאות
תוכנית "Hello World" :
```hy
(print "Hello, World!")
```

ביצוע פעולות ב-Hy, כמו בניבי Lisp רבים, נעשה כאשר המילה השמורה לפעולה, או האופרטור נמצאים בתחילת הקוד, והפרמטרים נמצאים לאחר מכן ומופרדים אחד מהשני ברווחים (ללא פסיקים). לדוגמה, הדפסה על המסך של ביצוע פעולה אריתמטית בין ארבעה מספרים ב-Hy :
```hy
(print ( + 6 8 4 9))
```


קוד זה נלקח מהדוקומנטציה של Hy :
```hy
=> (print "Hy!")
Hy!
=> (defn salutationsnm [name] (print (+ "Hy " name "!")))
=> (salutationsnm "YourName")
Hy YourName!
```


## כתיבת קוד ב-Hy
### התקנת פייתון
ישנן כמה דרישות על מנת להתחיל לכתוב ב-Hy. ראשית, יש להתקין פייתון, ורצוי גם להתקין עורך טקסט או סביבת פיתוח משולבת (תוכנות מחשב בהן כותבים, מריצים קוד ומחפשים בו באגים באמצעות debug). תוכנות טובות לשימושים אלו יהיו IDLE, Spyder, Pycharm, Visual Studio Code, Visual Studio (עורך טקסט), וכדומה. מתכנתים רבים מעדיפים את Pycharm כסביבת הפיתוח משולבת. ניתן להתקין את פייתון באתר הרשמי של פייתון ומומלץ להתקין אחת מן הגרסאות החדשות יותר, משום שישנם הבדלים רבים בין גרסאות ישנות כגון גרסה 2.7 למשל, לגרסה 3.8.5. בנוסף, בגרסאות חדשות ניתן להתקין את מנהל החבילות (מודולים על משתנה `__path__`, כאשר מודול הוא קובץ\קבצים שמכילים מחלקות שניתן לייבא בפרויקטים ובקבצים אחרים) `pip`, ואת IDLE ביחד עם פייתון.

### התקנת Hy באמצעות PIP
ניתן להתקין את הקבצים באתר pypi, בקישור המצורף או לכתוב בשורת הפקודה `pip install hy` (יש להתקין פייתון לפני כן).
[טקסט=|ממוזער|התקנת Hy [ממשק שורת פקודה|בשורת הפקודה במערכת ההפעלה windows, באמצעות pip.]]

## ראו גם
* Lisp
* Common Lisp
* פייתון

## קישורים חיצוניים

* 
* 
* מדריך טקסטואלי ללמידה עצמית של בסיסי השפה Hy.
* Danjou, Julien (2018). Serious Python: black-belt advice on deployment, scalability, testing, and more. San Francisco, CA: No Starch Press. pp. 145–149. . OCLC 1057729260.
* Turto, Tuukka (14 February 2014). "Programming Can Be Fun with Hy". Open Source For You. Retrieved 2 September 2014.
* Edge, Jake (30 April 2014). "Getting Hy on Python". LWN.net. Retrieved 2 September 2014.
* Danjou, Julien (26 March 2014). "The AST". The Hacker's Guide to Python. pp. 165–172.
* Kitchin, John (31 March 2016). "More on Hy and why I think it is a big deal". The Kitchin Research Group. Carnegie Mellon University. Retrieved 19 September 2018.

## הערות שוליים

קטגוריה:ניבי Lisp