ภาษาเอฟชาร์ป
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.0[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>
tag with namehistoryMSR
cannot be previewed because it is defined outside the current section or not defined at all. - ↑ 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.