Visual F# 2010 的新功能

F# 是可在 Visual Studio 2010 中使用的 .NET Framework 多重開發架構程式設計語言。 F# 支援函式程式設計、物件導向程式設計和命令式程式設計。

Visual F# 的 Visual Studio 2010 版本功能。

下列小節將說明可在第一版 Visual F# 中使用的部分功能。

支援函式程式設計

函式會當做值來處理,並且可以直接傳遞給其他函式。 這項功能讓撰寫高階函式 (在函式上運作的函式) 變得更容易, 也有助於撰寫較為宣告式的程式碼,並且比較不容易出錯。

F# 支援複合式程式設計。 您可以使用簡單的運算子語法,循序撰寫並呼叫函式, 也可以使用管線運算子來結合函式呼叫,也就是可將一個函式的輸出或傳回值提供給另一個函式做為輸入。 此外,您也可以使用複合運算子將函式組合在一起,以定義新的函式。

如需詳細資訊,請參閱函式 (F#)

Lambda 運算式

「Lambda 運算式」(Lambda Expression) 可以就地定義函式,而不必命名函式。 如需詳細資訊,請參閱 Lambda 運算式:fun 關鍵字 (F#)

有用的資料型別

F# 提供支援函式程式設計風格的型別,例如簡單資料集合適用的 Tuple,以及結構化符號資料適用的已區分聯集。 如需詳細資訊,請參閱 Tuple (F#)已區分的聯集 (F#)選項 (F#)

不可變資料型別

F# 提供不可變的資料結構,例如不可變的清單、對應、集合、序列和記錄。 如需詳細資訊,請參閱清單 (F#)序列 (F#)資料錄 (F#)

模式比對

模式比對功能可讓您將資料分解為組成部分,並根據資料的分解部分執行複雜的分支作業。 模式比對也是可擴充的。 如需詳細資訊,請參閱搜尋運算式 (F#)模式比對 (F#)作用中的模式 (F#)

非同步與平行程式設計

F# 支援非同步程式設計,並且包含讓這種程式設計較以往更加容易的建構。 如需詳細資訊,請參閱非同步工作流程 (F#)。 F# 也可以和 Parallel Extensions to .NET Framework 結合使用。 有了 F# Power Pack,您也可以搭配 F# 使用平行 LINQ (PLINQ)。 如需詳細資訊,請參閱以 .NET Framework 進行平行程式設計

互動式程式設計

Visual F# 包含 F# Interactive (fsi.exe),這個 F# 解譯器能以互動方式編譯和執行程式碼, 讓您輕鬆地製作程式碼的原型並嘗試程式碼建構,而不必編譯專案。 F# Interactive 也已經與 Visual Studio IDE 整合在一起。 如需詳細資訊,請參閱 F# Interactive (fsi.exe) 參考

延遲計算

F# 支援「延遲計算」(Lazy Computation),可讓您延遲計算直到需要結果為止。 如需詳細資訊,請參閱延遲運算 (F#)

支援物件導向程式設計

F# 支援物件導向語言功能,可以讓 F# 程式完整存取 .NET Framework,同時也能讓您在 F# 中產生 .NET Framework API。 如需詳細資訊,請參閱類別 (F#)成員 (F#)繼承 (F#)

支援命令式程式設計

F# 支援命令式程式碼建構 (例如,可變的變數和陣列、有副作用的函式和迴圈建構),以便用於最適合使用這種程式設計來解決問題的情況。

支援數學計算

F# 支援數學計算, 包括運算子多載支援、搭配泛型使用的運算子,以及含乘冪運算子的完整數學運算子集合。

F# 還特別支援與測量單位相關聯的浮點資料,如此就可以使用檢查過單位的浮點公式。

進階型別系統

F# 支援泛型程式設計。 如需詳細資訊,請參閱泛型 (F#)

F# 為支援型別推斷的靜態語言。 這表示所有程式項目在編譯時期都有確定的型別,可確保型別安全,但不表示您不需要明確指定每個值的型別。 由於 F# 編譯器經常可以推斷程式項目的型別,而不需要提供明確的型別,因此程式碼比較精簡,而且某些與型別不符有關的程式設計錯誤類型也比較少。 型別推斷也包括「自動一般化」(Automatic Generalization),也就是將可以成為泛型的函式自動編譯為泛型。 如需詳細資訊,請參閱型別推斷 (F#)

有用的程式庫

Visual F# 包含一組程式庫,可支援核心語言、集合型別、F# 組件反映及格式化 I/O。 F# 也能夠存取 .NET Framework 4 的完整功能,例如 Parallel Extensions to .NET Framework 和 Windows Presentation Foundation。 如需詳細資訊,請參閱 .NET Framework 4

請參閱

其他資源

F# 語言參考

F# 入門