您的瀏覽器不支援JavaScript語法,但是並不影響您獲取本網站的內容 網頁設計,網頁設計公司,網頁程式設計,網站程式設計,台北網頁設計,無障礙網頁設計,3d互動網頁設計, 720度環場,網站建置,主機代管,電子商務,政府機關網頁設計,公家機關網頁設計,網站製作公司,網站設計公司,網站架設
網頁設計,網頁設計公司,網頁程式設計,網站程式設計,台北網頁設計,無障礙網頁設計,3d互動網頁設計, 720度環場,網站建置,主機代管,電子商務,政府機關網頁設計,公家機關網頁設計,網站製作公司,網站設計公司,網站架設
網頁設計程式設計網站規劃虛擬主機與主機代管關於網繹我們的服務我們的客戶無障礙網頁設計網站優化SEO聯絡我們
網頁設計,網頁設計公司,網頁程式設計,網站程式設計,台北網頁設計,無障礙網頁設計,3d互動網頁設計, 720度環場,網站建置,主機代管,電子商務,政府機關網頁設計,公家機關網頁設計,網站製作公司,網站設計公司,網站架設
Logo 排版用圖片
:::回首頁網站地圖ENGLISH日本語簡體中文rss
:::
關於網繹
我們的客戶
我們的服務
無障礙網頁
SEO網站優化
資訊與知識庫
聯絡我們
無障礙網頁裝飾用圖片
無障礙網頁的專家
透過網繹將您的網站輕鬆的通過無障礙網頁檢測標準,達到轉換網頁無障礙,擴充單元無障礙,新增內容無障礙的功能。
:::
資訊與知識庫
標題 F#:微軟下一代重量級語言
主題分類 系統與程式設計
原文章出處 Ithome online 蔡學鏞-技術顧問

微軟從2002年開始研發F#,2005年推出第一個版本,現在的F#已經接近成熟。2007年底,微軟宣布將F#從研究室的專案轉移到產品部門,進入產品化的階段,在下一個版本的Visual Studio中,F#將會成為正式的一員,和C#、Visual Basic平起平坐。目前,F#也已經和Visual Studio做了初步的整合。

一個新語言的誕生,有它的時代背景,對F#來說,自然是函數式編程(FP,Functional Programming)的因素。事實上,除了具備FP的能力,F#在命令式編程語言(Imperative Programming)與物件導向編程(OOP)方面的能力,也是不打折的。因此,利用F#寫程式,你可以享有高度自由,想用什麼樣的Paradigm,可以自己作主。但如果完全不使用FP,那麼使用F#的意義便不大,還不如回頭用C#。

雖然F#比其他FP語言(Haskell、Erlang、Common Lisp)似乎更好學(因為語法比較不奇怪),但是一般人要善用F#並不容易,主要是因為FP的Paradigm和我們慣用的OOP與Imperative Programming不同。因此,在熟悉F#的過程中,一開始最好強迫自己只用FP的方式寫F#程式。

函數式編程常用到的技巧包括:Higher-Order Function、Currying、Lazy Evaluation、Continuations、Pattern Matching、Closure、List Processing、Meta-Programming。令人驚訝地,F#對上述的支援都相當不錯。許多FP語言在這些方面可能還比不上F#完整。一開始寫F#程式,盡量多用這些技巧,寧可矯枉過正,這是學習的必經階段。

如果你想要開始習慣用F#寫FP程式,可以試著這麼做:
● 將Object為主的程式碼,轉回Procedure的方式:將Object化成Record;將Method轉成Function;將this(或self)當作Function的參數;把Function集中放到Module(模組)。

● 使用迴圈的地方,盡量轉成遞迴(Recursion)。先不要管執行效率的問題。

● 將用到if/else或switch/case的地方,改用Pattern Matching(模式比對)。

只要做到這三件事,你的F#程式會具有濃濃的FP風味。

F#由於是建構在.NET平臺上,所以當然和.NET有天衣無縫的整合。
事實上,F#所提供的互動式環境,對於學習.NET API來說,是相當不錯的工具,會比PowerShell更適合程式員使用。

由於F#的開發相當早(2002年),加上F#比較屬於靜態,而不是動態的語言,所以目前F#並沒有以.NET的DLR(Dynamic Language Runtime)為平臺。至於未來F#會不會搬到DLR上頭?目前情況還不明朗。

以往用FP開發的系統多以科學和財務為主,現在有了F#和.NET,應該可以為FP開拓更廣的應用領域。我相信,改用F#寫.NET各種應用(ASP.NET、GUI、LINQ)的做法,會逐漸形成風氣。

F#也是一種語言導向編程(Language-Oriented Programming)的語言。所謂的「語言導向編程」,就是Meta-Programming,也就是「可以建立自己的DSL(Domain-Specific Language)」。我寫過一篇關於「GPL & DSL」的文章,但是這篇文章並沒有引起太多讀者的注意,顯然大家尚未意識到Meta-Programming的重要性,相當可惜。

F#對於Meta-Programming的支援相當好,有多種方式可以實作出DSL。有了F#,你不需要用到ANTLR這樣的外部工具,也可以建立自己的DSL。

如果你現在想學習F#的話,要特別注意,目前F#的文件寫得並不好──不完整、未更新而且凌亂。想透過閱讀官方的線上資料學習F#,效果可能不佳,你必須搭配閱讀APress出版的《Expert F#》,作者之一的Don Syme是F#計畫的負責人。

儘管目前文件上有缺失,但是F#已經轉移到產品部門,所以我相信不用多久,這些問題就會逐漸解決。

雖然F#已經推出3年,但是過去僅算是實驗室的專案,並不是商品。在TIOBE排行榜中,F#併入ML,目前ML排名第39,並沒有特別好的表現。不過,隨著F#商品化之後,應該就會改善,未來這幾年,F#勢必會漸漸逼近前20名。

整體來說,F#是很不錯的語言,程式開發人員如果能熟悉F#,應該可以提升軟體開發的生產力。身為微軟.NET家族的唯一FP語言,F#的地位相當特殊且重要。以F#的先進與方便,未來「說不定」會成為C#的強大競爭對手。有人甚至認為,使用過F#之後,就不會想用其他.NET語言,這是真的──至少對我來說是如此。

文章整理: 網繹數位科技 Murray
關鍵字: 微軟新語言,F#

go to top
通過第三優先等級無障礙網頁檢測
   
網繹數位科技網頁設計公司 地址:台北市復興南路一段321號3樓 Tel: (02)2704-1758(代表號)  Fax: (02)2704-0372 Email:e-service@eki.com.tw
網頁設計程式設計網站規劃虛擬主機與主機代管關於網繹我們的服務我們的客戶無障礙網頁設計網站優化SEO聯絡我們
(a) 跨國企業 為Sony 新力、Du Pont 台灣杜邦、Syngenta 台灣先正達、Xerox 全錄、TUV 德國萊因、Imation 美商怡敏信、DHL 洋基通運、日商丸紅等跨國企業、國際大型公司網站設計、程式設計、網頁設計、資料庫規劃及系統整合之設計廠商。 (b) 知名企業 為流行風尚精品之公司網站設計、程式設計、網頁設計、諸如居禮名店、長榮桂冠酒店、三井日本料理、天仁集團、菲夢絲、歌林公司、八王子集團、牡丹園餐廳、華固建設、等製作高質感之精緻網站。 (c) 金融機構 為金融單位或公司網站設計、程式設計、網頁設計、如兆豐金控、新光產物保險、中央再保、第一期貨、慶豐銀行、KGI中信期貨、台灣銀行等諸銀行,南山人壽、金融聯合徵信中心等金融公司及單位之網站建置及資料庫設計協力廠商。 (d) 政府機關及民間機構 為政府機構及民間團體網站設計、程式設計、網頁設計、如台北世界貿易中心、台北國際會議中心、中研院、十三行博物館、黃金博物園區、鶯歌陶瓷博物館、臺北縣政府文化局、石門水庫、北區水資源局等政府機關以及法鼓山、中華電信工會、國科會、靈鷲山佛教基金會、財團法人保險事業發展中心等民間團體建置氣勢磅礡、兼具人文、藝術、歷史的網站或電子報。