F#F#入門


備註

F#是一種“功能優先”的語言。您可以了解所有不同類型的表達式以及函數

F#編譯器 - 它是開源的 - 將您的程序編譯為IL,這意味著您可以使用任何.NET兼容語言(如C#)中的 F#代碼;並在Mono, .NET Core或Windows上的.NET Framework上運行它。

版本

發布日期
1.x中 2005-05-01
2.0 2010-04-01
3.0 2012-08-01
3.1 2013年10月1日
4 2015年7月1日

F#互動

F#Interactive是一個REPL環境,允許您一次執行一行F#代碼。

如果已使用F#安裝Visual Studio,則可以通過鍵入"C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\Fsi.exe" 在控制台中運行F#Interactive。在Linux或OS X上,命令是fsharpi ,它應該在/usr/bin/usr/local/bin 具體取決於你安裝F#的方式 - 無論哪種方式,命令應該在你的PATH 這樣你就可以只需鍵入fsharpi

F#交互使用示例:

> let i = 1 // fsi prompt, declare i
- let j = 2 // declare j
- i+j // compose expression
- ;; // execute commands

val i : int = 1 // fsi output started, this gives the value of i
val j : int = 2 // the value of j
val it : int = 3 // computed expression

> #quit;; //quit fsi
 

使用#help;; 求助

請注意使用;; 告訴REPL執行任何以前輸入的命令。

你好,世界!

這是一個簡單的控制台項目的代碼,打印出“Hello,World!”到STDOUT,退出時退出代碼為0

[<EntryPoint>]
let main argv = 
    printfn "Hello, World!"
    0 
 

示例細分逐行:

  • [<EntryPoint>] - 一個.net屬性 ,用於標記程序( )的“用於設置入口點的方法”。
  • let main argv - 這定義了一個名為main 的函數,它帶有一個參數argv 。因為這是程序入口點,所以argv 將是一個字符串數組。數組的內容是執行時傳遞給程序的參數。
  • printfn "Hello, World!" - printfn 函數輸出作為第一個參數傳遞的字符串**,同時附加換行符。
  • 0 - F#函數始終返回一個值,返回的值是函數中最後一個表達式的結果。將0 作為最後一行意味著該函數將始終返回零(整數)。

**這實際上不是一個字符串,即使它看起來像一個字符串。它實際上是一個TextWriterFormat ,它可以選擇允許使用靜態類型檢查的參數。但是出於“hello world”示例的目的,它可以被認為是一個字符串。

安裝或設置

視窗

如果安裝了Visual Studio(包括express和community的任何版本),則應該已包含F#。在創建新項目時,只需選擇F#作為語言。或者查看http://fsharp.org/use/windows/了解更多選項。

OS X.

Xamarin Studio支持F#。或者,您可以使用VS Code for OS X ,它是Microsoft的跨平台編輯器。
完成安裝VS Code後,啟動VS Code Quick OpenCtrl + P ),然後運行ext install Ionide-fsharp

您也可以考慮使用Visual Studio for Mac

這裡描述了其他替代方案。

Linux的

通過您的發行包管理器(Apt,Yum等)安裝mono-completefsharp 軟件包。要獲得良好的編輯體驗,請使用Visual Studio Code並安裝ionide-fsharp 插件,或使用Atom並安裝ionide-installer 插件。有關更多選項,請參見http://fsharp.org/use/linux/