ภาษาเอฟชาร์ป
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
รุ่นเสถียร | 9[1]
/ 12 พฤศจิกายน 2024 |
ระบบชนิดตัวแปร | 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")
อ้างอิง
[แก้]- ↑ ผิดพลาด: ไม่สามารถแสดงข้อมูลอ้างอิงได้อย่างถูกต้อง ดูคู่มือการใช้งานสำหรับรายละเอียด
- ↑ "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-07.
- ↑ The F# Software Foundation. "Use F# for Android Development". สืบค้นเมื่อ 2014-06-07.
- ↑ ผู้ร่วมสร้าง F#
- ↑ F# ที่ Microsoft Research
- ↑ "Contributing to the F# Language, Library and Tools". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2014-04-08. สืบค้นเมื่อ 2014-04-16.