PureScript
יש לערוך ערך זה. ייתכן שהערך סובל מבעיות ניסוח, סגנון טעון שיפור או צורך בהגהה, או שיש לעצב אותו, או מפגמים טכניים כגון מיעוט קישורים פנימיים.
| ||
יש לערוך ערך זה. ייתכן שהערך סובל מבעיות ניסוח, סגנון טעון שיפור או צורך בהגהה, או שיש לעצב אותו, או מפגמים טכניים כגון מיעוט קישורים פנימיים. |
פרדיגמות | תכנות פונקציונלי |
---|---|
תאריך השקה | 2013 |
מתכנן | פיל פרימן |
טיפוסיות | סטטית, חזקה, מוסקית |
הושפעה על ידי | Haskell, JavaScript |
רישיון | BSD |
סיומת | .pur |
PureScript היא שפת תכנות פונקציונלית טהורה בעלת טיפוסיות חזקה אשר מהודרת ל-JavaScript. ניתן להשתמש בה על מנת לפתח אפליקציות web, יישומים ב צד שרת, וכן יישומים בשולחן העבודה באמצעות Electron (אנ'), תשתית תוכנה אשר פותחה ומתוחזקת על ידי GitHub. התחביר של PureScript מזכיר מאוד את התחביר של שפת התכנות הפונקציונלית הידועה Haskell. בנוסף לכך, נוספו פיצ'רים חדשים כגון "row polymorphism" (אשר מתייחס לתת סוג של עיקרון הפולימורפיזם במדעי המחשב), וכן records אשר ניתנים להרחבה. יתר על כן, בניגוד ל-Haskell הידועה, PureScript דבקה בטכניקת פישוט יחידה (Evaluation Strategy), כלומר, האופן והתזמון שבהם ביטויים בשפה מפושטים.
היסטוריה
PureScript תוכננה תחילה על ידי פיל פרימן ב-2013. הוא החל לעבוד על PureScript כאשר כמה ניסיונות שערך שמטרתם לבצע הידור מ-Haskell ל-JavaScript, תוך כדי שמירת התחביר והסמנטיקה, לא היו לשביעות רצונו.
פיצ'רים
PureScript תומכת בטכניקת הפישוט Eager Evaluation (לעיתים נקראת גם כ-Strict Evaluation), שלפיה ביטוי מפושט כאשר הוא מקושר למשתנה, זאת בניגוד לטכניקת הפישוט העצלה (Lazy Evaluation). בנוסף, היא תומכת ב"מבני נתונים עיקשים" (Presistent Data Structures), כלומר, מבני נתונים אשר שומרים את הגרסה האחרונה של עצמם כאשר משנים אותם. יתר על כן, היא תומכת בהסקת טיפוסים (type inference), דהיינו, המשתמש יכול ליצור משתנה מבלי להגדיר את הטיפוס שלו, שכן המערכת תסיק זאת בעצמה לפי סוג הביטוי אשר מקושר אליו.
דוגמאות קוד
תוכנית "Hello World" מינימלית ב-PureScript :
module Main where
import Effect.Console (log)
main = log "Hello World!"
ראו גם
קישורים חיצוניים
30776165PureScript