ภาษาเอฟชาร์ป
| F# | |
|---|---|
F# logomark | |
| กระบวนทัศน์ | Multi-paradigm: functional, imperative, object-oriented, agent-oriented, metaprogramming, reflective, concurrent |
| ตระกูล | ML |
| ออกแบบโดย | Don Syme, Microsoft Research |
| ผู้พัฒนา | Microsoft, The F# Software Foundation |
| ปรากฏครั้งแรก | 2005, version 1.0 |
| รุ่นเสถียร | |
| การกำหนดชนิดตัวแปร | Static, strong, inferred |
| โอเอส | Cross-platform: .NET, .NET Framework, Mono |
| สัญญาอนุญาต | MIT License[2][3] |
| นามสกุลไฟล์ | .fs, .fsi, .fsx, .fsscript |
| เว็บไซต์ | fsharp |
| ได้รับอิทธิพลจาก | |
| C#, Erlang, Haskell,[4] ML, OCaml,[5][6] Python, Scala | |
| มีอิทธิพลต่อ | |
| C#,[7] Elm, F*, LiveScript | |
| |
ภาษาเอฟชาร์ป (F#) เป็นภาษาสำหรับเขียนโปรแกรมคอมพิวเตอร์แบบ strongly typed บนดอตเน็ตเฟรมเวิร์กและ Mono ที่สนับสนุนโมเดลการเขียนโปรแกรมหลายแบบรวมทั้ง การเขียนโปรแกรมเชิงฟังก์ชัน การเขียนโปรแกรมเชิงวัตถุ และการเขียนโปรแกรมเชิงคำสั่ง F# เป็นภาษาดอตเน็ต สามารถเรียกใช้เอพีไอของดอตเน็ต และถูกเรียกจากภาษาดอตเน็ตอื่นๆ นอกจากนั้น F# ยังสามารถถูกใช้กับโปรแกรมประยุกต์บนเว็บ[8] เขียนโปรแกรมสำหรับหน่วยประมวลผลกราฟิกส์ หรือ GPU [9] และใช้เขียนโปรแกรมสำหรับแมคโอเอสเท็น[10] ไอโอเอส[11] และ แอนดรอยด์[12] โดยใช้ Programming tool สร้างโดยบริษัท Xamarin
ประวัติ
[แก้]F# ถูกเริ่มสร้างโดย Don Syme และทีม[13] ที่ Microsoft Research[14] โดยมีพื้นฐานมาจากภาษา OCaml (ซึ่งเป็นภาษาในตระกูลภาษา ML)
ปัจจุบันภาษาเอฟชาร์ปได้ถูกโอเพนซอร์ส[15] และพัฒนาโดย F# Software Foundation, Microsoft, และผู้พัฒนาทั่วๆไป
ภาพรวม
[แก้]F# เป็นภาษาแบบ strongly typed ที่สนับสนุนโมเดลการเขียนโปรแกรมหลายแบบ รวมทั้งการเขียนโปรแกรมเชิงฟังก์ชัน การเขียนโปรแกรมเชิงวัตถุ และการเขียนโปรแกรมเชิงคำสั่ง โดยที่ทุกอย่างในเช่นฟังก์ชัน control flows ใน F# เป็น expression ที่มี type หรือ โครงสร้างข้อมูล ที่สามารถถูกประกอบเข้ากันได้
โครงสร้างข้อมูลที่สำคัญที่มีใน F# ได้แก่:
โปรแกรมตัวอย่าง
[แก้]โปรแกรมหา Factorial
[แก้]> let rec fact = function
| 0 -> 1
| n -> n * fact(n-1);;
val fact : int -> int
ผลลัพธ์
> fact 12;; val it : int = 479001600
วินโดวส์ฟอร์ม
[แก้]open System.Windows.Forms let form = new Form() do form.Visible <- true do form.TopMost <- true do form.Text <- "Welcome to F#" let x = 3 + (4 * 5) do form.Text <- (if x = 23 then "Correct!" else "incorrect")
อ้างอิง
[แก้]- ↑ https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-10.
{{cite web}}: Missing or empty|title=(help) - ↑ "F# Software Foundation's License". GitHub. 14 October 2021.
- ↑ "Microsoft's F# License". GitHub. 16 October 2021.
- ↑ Syme, Granicz & Cisternino (2007:2)
- ↑ อ้างอิงผิดพลาด: ป้ายระบุ
<ref>ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อhistoryMSR - ↑ Syme, Don (2006). "Leveraging .NET Meta-programming Components from F#".
[F#] is rooted in the Core ML design, and in particular has a core language largely compatible with that of OCaml
- ↑ for async
- ↑ The F# Software Foundation. "Using F# with HTML5 Web Applications". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2014-06-25. สืบค้นเมื่อ 2014-06-07.
- ↑ The F# Software Foundation. "Using F# for GPU Programming". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2016-12-18. สืบค้นเมื่อ 2014-06-07.
- ↑ The F# Software Foundation. "Use F# on Mac OSX". สืบค้นเมื่อ 2014-06-07.
- ↑ The F# Software Foundation. "Use F# for iOS App Development". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2014-06-25. สืบค้นเมื่อ 2014-06-07.
- ↑ The F# Software Foundation. "Use F# for Android Development". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2014-06-25. สืบค้นเมื่อ 2014-06-07.
- ↑ ผู้ร่วมสร้าง F#
- ↑ F# ที่ Microsoft Research
- ↑ "Contributing to the F# Language, Library and Tools". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2014-04-08. สืบค้นเมื่อ 2014-04-16.