PureScript

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש
Gnome-edit-clear.svg
יש לערוך ערך זה. ייתכן שהערך סובל מבעיות ניסוח, סגנון טעון שיפור או צורך בהגהה, או שיש לעצב אותו, או מפגמים טכניים כגון מיעוט קישורים פנימיים.
אתם מוזמנים לסייע ולערוך את הערך. אם לדעתכם אין צורך בעריכת הערך, ניתן להסיר את התבנית.
יש לערוך ערך זה. ייתכן שהערך סובל מבעיות ניסוח, סגנון טעון שיפור או צורך בהגהה, או שיש לעצב אותו, או מפגמים טכניים כגון מיעוט קישורים פנימיים.
אתם מוזמנים לסייע ולערוך את הערך. אם לדעתכם אין צורך בעריכת הערך, ניתן להסיר את התבנית.
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!"

ראו גם

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

Crystal kpackage.png ערך זה הוא קצרמר בנושא תוכנה. אתם מוזמנים לתרום למכלול ולהרחיב אותו.
Logo hamichlol 3.png
הערך באדיבות ויקיפדיה העברית, קרדיט,
רשימת התורמים
רישיון cc-by-sa 3.0