F sharp
הדף יובא אוטומטית על ידי רובוט ונמצא נקי בסריקה אוטומטית, הדף טרם נבדק ידנית
דף זה עודכן אוטומטית מוויקיפדיה, וטרם עבר בקרה אנושית
תוצאת סריקה אוטומטית: מצב הדף: לא ידוע. מדיה לצפייה: נמצאו תמונות או קבצי מדיה.
עדכן דיווח: • • אישור טקסט בלבד • אישור תמונות בלבד | הוראות טיפול
מדיה מוסתרת זמנית | ערך זה זקוק לעריכה: ייתכן שהערך סובל מפגמים טכניים כגון מיעוט קישורים פנימיים, סגנון טעון שיפור או צורך בהגהה, או שיש לעצב אותו. | ||
אתם מוזמנים לסייע ולתקן את הבעיות, אך אנא אל תורידו את ההודעה כל עוד לא תוקן הדף. אם אתם סבורים כי אין בדף בעיה, ניתן לציין זאת בדף השיחה. |
מדיה מוסתרת זמנית | |
פרדיגמות | תכנות פונקציונלי, תכנות מונחה עצמים, עיבוד מקבילי |
---|---|
מפתח | Microsoft, The F# Software Foundation |
גרסה אחרונה | 5.0 (10 בנובמבר 2020) |
טיפוסיות | סטטית, חזקה, מוסקת (inferred) |
הושפעה על ידי | C#, Haskell, ML, Python Scala, Erlang, Ocaml |
השפיעה על | C# , Elm, F*, LiveScript |
רישיון | רישיון MIT |
סיומת |
.fs .fsi .fsx .fsscript |
F# או אֵף שַׁארְפּ היא שפת תכנות כללית, אשר נוצרה על ידי הארגון F# Software Foundation (אנ'), תאגיד התוכנה מיקרוסופט ותורמים עצמאיים בשנת 2005 אשר משלבת תכנות פונקציונלי, אימפרטיבי ומונחה עצמים. F# בדרך כלל משומשת בתור שפה חוצה פלטפורמות בסביבת ה NET Core. של מיקרוסופט, אך היא יכולה לייצר קוד ב- JavaScript (כלומר, לשמש בפרויקטים של web) וקוד של מעבד גרפי. מהדר חוצה פלטפורמות בעל קוד פתוח ל-F# זמין בארגון F# Software Foundation. בנוסף, F# נתמכת באופן מלא בסביבות הפיתוח המשולבות Visual Studio, מבית מיקרוסופט, ו JetBrains Rider, מבית JetBrains. יתרה מכך, ישנם תוספים רבים אשר זמנים לסביבות פיתוח שונות, שהמוכר מביניהם הוא lonide, אשר זמין בויז'ואל סטודיו, וכן תוספים אשר מבצעים אינטגרציה עם סביבות פיתוח מסורתיות יותר כגון Vim ו- Emacs. יש לציין כי F# הוא ממשפחת שפות ML, והתחיל כמימוש של העקרונות המרכזיים של שפת OCaml ( שגם היא ממשפחת שפות ML ) . היא הושפעה גם מ C# ,פייתון, Haskell, Scala ו-Erlang.
היסטוריה[edit | edit source]
היסטורית גרסאות[edit | edit source]
גרסה | ספסיפקציות הגרסה | תאריך פרסום הגרסה | פלטפורמות | סביבות הריצה |
---|---|---|---|---|
F# 1.x | מאי 2005 | Windows | .NET 1.0 - 3.5 | |
F# 2.0 | אוגוסט 2010 | אפריל 2010 | Linux, macOS, Windows | .NET 2.0 - 4.0, Mono |
F# 3.0 | נובמבר 2012 | אוגוסט 2012 | Linux, macOS, Windows;
JavaScript, GPU |
.NET 2.0 - 4.5, Mono |
F# 3.1 | נובמבר 2013 | אוקטובר 2013 | Linux, macOS, Windows;
JavaScript, GPU |
.NET 2.0 - 4.5, Mono |
F# 4.0 | ינואר 2016 | יולי 2015 | ||
F# 4.1 | מרץ 2017 | Linux, macOS, Windows,
JavaScript, GPU |
.NET 3.5 - 4.6.2, .NET Core, Mono | |
F# 4.5 | אוגוסט 2018 | Linux, macOS, Windows,
JavaScript, GPU |
.NET 4.5 - 4.7.2, .NET Core SDK 2.1.400 | |
F# 4.7 | ספטמבר 2019 | |||
F# 5.0 | נובמבר 2020 | Linux, macOS, Windows,
JavaScript, GPU |
.NET Core SDK 5.0.100 |
אבולוצית השפה[edit | edit source]
F# משתמשת בפיתוח והנדסת תוכנה פתוחה. אבולוציית השפה מנוהלת על ידי מדען המחשב דון סיים (Don Syme) מתאגיד מיקרוסופט, יחד עם F# Software Foundation. גרסאות מוקדמות של השפה עוצבו על ידי מיקרוסופט, וחטיבת החקר של מיקרוסופט ( Microsoft Research, (אנ')) בסביבת פיתוח סגורה.
פיתוח F# החל בחטיבת החקר של מיקרוסופט, בקיימברידג', בריטניה. השפה במקורה תוכננה ומומשה על די דון סיים. שמה של F#, לפי צוות הפיתוח של F#, נגזר מהאות F, המייצגת את המילה Fun. בגרסה 1.0, הוספו פיצ'רים רבים בסיסיים, כגון תמיכה בתכנות פונקציונלי, אימפרטיבי ומונחה עצמים, structs, מבני נתונים מסוג tuple, מודולים ומודולים מקוננים וכו'. בגרסה 3.0 הוספה תמיכה בספריית LINQ, אשר מאפשרת לכתוב קוד דקלרטיבי דמוי SQL ב-F#. ספריה זו זמינה גם ב-C# מגרסה 3.0 וכן ב- Visual Basic.
כלי הפיתוח של Visual F# עבור ויז'ואל סטודיו, סביבת פיתוח משולבת מבית מיקרוסופט, מפותחים גם הם על ידי מיקרוסופט. בנוסף, הארגון F# Software Foundation פיתח מהדרים בעלי קוד פתוח, וכלים אשר משתלבים עם מהדרי הקוד הפתוח שיצרה מיקרוסופט.
סקירת השפה[edit | edit source]
תכנות פונקציונלי[edit | edit source]
F# היא שפת תכנות פונקציונלית אשר משתמשת בטכניקת הסקת טיפוסים (type inference), כלומר, מתכנת בשפה לא צריך להגדיר את טיפוסי הנתונים ( int, string וכדומה) - המהדר יסיק זאת לבד במהלך ההידור. F# מאפשרת גם הגדרת טיפוסים באופן ישיר על ידי המתכנת, ואף דורשת שימוש בכך במצבים מסוימים.
F# היא שפה מבוססת ביטויים אשר משתמשת בעיקר בטכניקת פישוט הביטויים הנפוצה eager evaluation, שלפיה ביטוי יפושט כאשר ברגע שהוא מקושר למשתנה, וכן בטכניקת- lazy evaulation במקרים מסוימים, שלפיה ביטוי יפושט רק כאשר נעשה בו שימוש.
על מנת ליצור משתנה ב F# ולבצע לו השמה לערך, ניתן להשתמש במילה השמורהlet
. לדוגמה, הביטוי let y = 6 + 3
6+3
, אשר מפושט ל- מדיה מוסתרת זמנית, למשתנה y
.
בנוסף, F# מאפשר שימוש ב sequence expressions, אשר מגדירים sequence, בתחביר seq { ... }
, רשימה, בתחביר [ ... ]
, ומערך, בתחביר [| ... |]
, בתוך קוד אשר מייצר ערכים. לדוגמה: seq { for b in 0 .. 25 do
if b < 15 then
yield b*b }
תכנות אימפרטיבי[edit | edit source]
F# תומכת גם ברכיבים רבים אשר מאפיינים תכנות פקודתי ( imperative programming ), שביניהם:
- לולאות for
- לולאות while
- מערכים, אשר נוצרים באמצעות התחביר
[| ... |]
. - מבנה נתונים מסוג מילון, ( Hash Table ), באמצעות התחביר
dict [ ... ]
או באמצעות הטיפוסSystem.Collections.Generic.Dictionary<_,_>
.
mutable
. לדוגמה:// Define 'x' with initial value '1'
let mutable x = 1
// Change the value of 'x' to '3'
x <- 3
תכנות מונחה עצמים[edit | edit source]
- סימון של נקודה, על מנת למשל לגשת לתכונות ופעולות מתוך אובייקט או מתוך או מחלקה, או לגשת למחלקה או אוסף מחלקות מתוך ספרייה מיובאת. לדוגמה:
x.Name
- ביטויי אובייקטים, לדוגמה:
{ new obj() with member x.ToString() = "hello" }
- בניית אובייקטים באמצעות המילה השמורה new. לדוגמה:
()new Form
- בחינת טיפוסים, לדוגמה:
x :? string
בוחן האם x הוא מהטיפוס מחרוזת ( string ) . - המרה בין סוגי נתונים ( type coercions ) . לדוגמה:
x :?> string
- קבלת פרמטרים בעלי שמות: ( Named Arguments ), לדוגמה: .,
(x.Method(someArgument=1
- אתחול תכונות בשמותיהן בפעולה בונה:
("new Form(Text="Hello
- פרמטרים אופציונליים: לדוגמה,
(x.Method(OptionalArgument=1
/// A simple object type definition
type Person(name : string, age : int) =
member x.Name = name
member x.Age = age
קהילת קוד פתוח[edit | edit source]
קהילת הקוד הפתוח של F# כוללת את הארגון F# Software Foundation, ואת Open Source Group ב-GitHub. פרויקטים בעלי קוד פתוח פופולריים ב-F#:
ראו גם[edit | edit source]
קישורים חיצוניים[edit | edit source]
ערך זה מוגש באדיבות ויקיפדיה העברית.
(הדף המקורי, רשימת התורמים)
הערך בוויקיפדיה גדול מערך זה ב +71 תווים
לעדכון מוויקיפדיה, לחץ כאן.