visual f#

visual f#

Visual F# 由微軟發展成為微軟.NET語言提供運行環境的程式設計語言。Visual f#是多元化程式語言,它支持函式式、命令式和面向對象的混合編程風格。Visual F# 可用於開發應用程式或用 F# 碼為其他 .NET 應用程式做必要的擴充。 F# 是 .NET 程式語言家族中第一個基於 Ocaml 並十分類似於它的函式語言。F#語言集安全、性能、腳本與Modern Runtime系統(Java虛擬機和微軟通用Runtime)等多種優勢於一體,並支持Python等互動式腳本語言、強類型推理、ML的安全性。另 外,F#語言可以訪問access.net庫以及其他資料庫工具軟體。

基本介紹

Visual F# 概述,為什麼要使用 F#,目前主要用途,F#例程:Hello World,解釋方式,圖形化方式,

Visual F# 概述

Visual F# 由微軟發展成為微軟.NET語言提供運行環境的程式設計語言。Visual f#是多元化程式語言,它支持函式式、命令式和面向對象的混合編程風格。Visual F# 可用於開發應用程式或用 F# 碼為其他 .NET 應用程式做必要的擴充。 F# 是 .NET 程式語言家族中第一個基於 Ocaml 並十分類似於它的函式語言。這是一種用於顯示.NET在不同程式語言間互通的程式設計。
F#語言集安全、性能、腳本與Modern Runtime系統(Java虛擬機和微軟通用Runtime)等多種優勢於一體,並支持Python等互動式腳本語言、強類型推理、ML的安全性.另 外,F#語言可以訪問access@net庫以及其他資料庫工具軟體.
與另外一個新微軟語言的精神相同,F#編譯器和工具將在微軟公共許可協定(Microsoft Public License)下開源。這一許可協定是所有微軟許可協定中最寬鬆的一個,基本來說你只要保留著作權聲明並且不對作者提出控告,那么你就可以做你想做的任何事情。
Visual Studio 2010中已正式包含 Visual F#,作為一種常規的開發工具發布。 作 為 .NET Framework 家族的新成員,F# 提供類型安全、性能以及類似腳本語言的工作能力,所有這些都是 .NET 環境的一部分。此函式式語言由 Microsoft 研究院的 Don Syme 發明,作為 CLR 的 OCaml 語法兼容變體,但 F# 已經迅速地從科研轉為投入實際套用。
隨著函式式編程的概念通過 .NET 泛型和 LINQ 等技術越來越多地滲入主流語言(例如 C# 和 Visual Basic),F# 在 .NET 社區裡的知名程度也不斷提高——因此,2007 年 11 月 Microsoft 宣布將 F# 確定為受支持的 .NET 程式語言。
多年來,大家一直認為函式式語言領域(ML、Haskell 等)更適合用於學術研究,而不適用於專業開發。但這並不代表這些語言沒有過人之處。事實上,.NET 的一些重要的功能增強(例如泛型、LINQ、PLINQ 和 Futures)都是將一些函式式編程概念全新套用到語言所致。以往對這些語言的關注程度不高主要是因為它們的目標平台與專為 Windows® 編寫程式的開發人員關係不大、不能與底層平台很好集成,或者不支持關係資料庫訪問、XML 解析和進程外通信機制等主要功能。
但是,CLR 及其“多種語言,單一平台”的方法將使此類語言在 Windows 開發中的套用越來越廣泛。並且順理成章地引起在一線工作的程式設計師們的注意。F# 即是這樣一門語言。

為什麼要使用 F#

對於小部分 .NET 程式設計師來說,學習一門 .NET Framework 函式化語言無疑將使自己在編寫功能強大軟體方面前進一大步。而對其他程式設計師來說,學習 F# 的理由就因人而異了。F# 能為開發人員提供哪些益處?
隨著多核 CPU 的普及,安全並發程式已成為過去三年來的關注焦點。函式式語言倡導一種固定不變的數據結構,可在執行緒和機器之間傳遞,而無需擔心執行緒安全或原子訪問,開發人員可以利用這一特點支持並發操作。函式式語言還可更輕鬆地編寫更支持並發特性的庫,如稍後將在本文中介紹的 F# 異步工作流
儘管對於專攻面向對象開發的程式設計師而言,可能對這種語言感覺不是這么強烈,但在很多情況下,函式式程式確實可以簡化某些應用程式的編寫和維護。例如,編寫一個將 XML 文檔轉換成其他格式數據的程式。雖然完全可以通過編寫一個 C# 程式,讓它解析整個 XML 文檔並套用各種 if 語句確定在文檔中的不同位置採取何種措施,但實際上更好的方法是編寫可擴展樣式表語言轉換 (XSLT) 程式。當然,XSLT 肯定包含大量的內置函式機制,如同 SQL 一樣。
F# 強烈建議不要使用空值 (null),而是提倡使用固定不變的數據結構。這些特性可以減少需要編寫的特例代碼量,從而有助於降低編程出錯的頻率。
使用 F# 編寫的程式還更加簡潔。您可以切實地從兩方面減少鍵入的內容:擊鍵次數更少並且必須要向編譯器通告變數類型、參數或返回類型的位置點也更少。這意味著需要維護的代碼將大大減少。
F# 具有與 C# 相似的性能特點。但是,與簡潔程度相似的語言(特別是那些動態和腳本語言)相比,它的性能特點要好得多。並且,F# 也包含通過編寫程式段並互動式執行查看數據的工具,這一點與許多動態語言類似。

目前主要用途

Visual Studio里,F#並不傾向於被單獨使用。微軟鼓勵開發人員使用F#來構建應用程式的核心,發布一個高質量的F#核心工具,可以增強Visual Studio的實力,讓其成為一個具有豐富界面開發能力的面向對象的編程環境。功能性程式語言將計算看做是數學函式的賦值,對於需要使用大量數學符號的某些領域專業人員來說,F#語言的數學特性頗具吸引力。F#也許終將成為程式核心部分設計的首選,而C#與VB等將在用戶界面互動設計方面繼續發揮其強大的潛力。

F#例程:Hello World

解釋方式

F# 屬於不需要顯式入口點(C#、VB 和等都需要顯式入口點)的語言;該語言假設程式的第一行即為入口點並將從此處開始執行。讓F# 列印 "Hello World" 的語句,只需要簡單的一句代碼:
printf "Hello, world!"
Hello World 解釋Hello World 解釋
要運行此程式,剛入門的 F# 開發人員有兩個選擇:編譯或解釋。在 F# 解釋程式中運行此程式 (fsi.exe) 很簡單。
只需從命令行啟動 fsi.exe 並在出現的提示中輸入上面一行內容即可,如圖所示。
請注意,在 shell 中,每條語句必須以兩個分號結尾。這是互動模式的特殊要求,編譯過的 F# 程式並不需要使用這種方式。

圖形化方式

如果希望“Hello, world!”中更具圖形化特點,F# 可以通過 CLR 平台(包括 Windows Forms 庫)輕鬆地提供完整的逼真度和互操作性。嘗試以下代碼:
System.Windows.Forms.MessageBox.Show "Hello World"
利用 .NET Framework 類庫和 F# 庫的能力使得 F# 語言不僅對那些早已使用如 OCaml 或 Haskell 之類函式式語言進行數學和科學計算的社區極具吸引力,而且受到全世界現有 .NET 開發人員的青睞。

相關詞條

熱門詞條

聯絡我們