在vs2019里看到的,8懂9問一下。


首先,f#可以生成IL,也就是說生成的庫可以被c#直接調用。另外一些工具可以編譯成js,譬如fable。

其次,f#與c#有很大區別,帶來很多思維上的轉變。下面我通過回憶列舉一下,想到一點更新一點,人在外地,手機碼字,更新會慢一點。

  1. f# 有比委託還輕量的函數對象。
  2. f# 會把尾遞歸編譯成循環。
  3. f# 沒有break關鍵字,所以很多時候需要使用遞歸。
  4. f# 使用對象表達式可以在不手動實現虛類或介面的繼承類的情況下產生一個可用對象。
  5. f#獨有的 inline + 靜態泛型,突破 .Net 自身動態泛型的局限,可以實現更多抽象代碼。
  6. 計算表達式,功能非常強大,分為標準操作和自定義操作,標準操作就是monad那一套。使用計算表達式可以做各種DSL,而f#自帶的seq(IEnumerable)構造語法,以及Linq語法,非同步表達式等都屬於計算表達式。
  7. MailboxProcessor,是f#自帶的actor,並發編程時很好用。我常用它來做設備通訊適配器。
  8. f# 可以定義單位,以及單位間的轉換方法,在計算時如果使用單位,可以防止自己用錯單位。
  9. f# 是強類型推導語言,不支持隱式轉換。

更多細節可以看:

羊牮:各個編程語言都有哪些「亮點」??

www.zhihu.com圖標

F#和C#、VB都差不多,都是在.Net平台下的開發語言,網上資料蠻少,國內用的也不多,我算頗為關注的,下面分享下。

F#是微軟2002年開始研發,然後再2005年發布了第一個版本,2007年底正式置入Visual Studio的,我算是持續關注了的,因為我自己對客戶端交互這塊兒比較薄弱。

F#是一種函數型程序設計語言。而且F#對IP(Imperative Programming)與OOP的支持一樣的出色。F#也許終將成為程序核心數據多線程處理的首選,而C#與VB等將在用戶界面交互設計方面繼續發揮其強大的潛力。

給你找個HelloWorld例子

當然了,到目前2020年,F#也還沒火起來,不過F#身為微軟唯一的FP語言,其位置特殊,還是可以關注一下的。


一門微軟出的函數式編程語言,個人覺得函數式語言寫東西能夠更加直觀的表達你的思維。

用這個語言寫過一些項目,比如 TypedocConverter:

https://github.com/hez2010/TypedocConverter?

github.com

相比其他的純 FP 語言(如 Haskell),它還兼容 IP 和 OOP,更加靈活一些,然而 F# 目前還不支持高階多態所以還是有一定的局限性(以後會加)。

另外 F# 可以讓你發現原來類型系統是這麼強大的東西。


F#名字由來應該是functional+fun+C#的sharp。

F#之父Don Syme先前在twitter上分享了一個PPT,提到當時這還是比爾蓋茨親自過目的研究項目。另外,有一個比較詳盡的pdf(https://fsharp.org/history/hopl-draft-1.pdf)也介紹了它的一些歷史。

Don Syme這種技術大牛,參與的研究項目還是很厲害的,我記得.NET里的泛型設計,他也是主要參與人。佩服!!!

我個人主要混跡在.NET行業,現在使用的個人或兼職項目基本上都是F#了,最近準備回饋一下社會(以前總是從社區看各種視頻和文章,現在也嘗試分享一下),計劃用F#來做一個帶前後端的俄羅斯方塊網頁遊戲。裡面主要涉及的底層技術就是F#, React,http://asp.net core等:

React 的另類用法系列(俄羅斯方塊)- 1?

www.slaveoftime.fun圖標

上面的文章主要是一個視頻(剛開始學習剪輯,如果不巧有看官感覺到辣眼睛還請見諒 )


我就隨便說說,蹭一腳。

不清楚F#,但是出來也一陣的。

C#目前還是.net家族的主流趨勢。

其實從語言排行,就能略知一二。

語法上,我個人感覺不太像。

至於聯繫,有和沒有,都能找到理由說


為函數式編程設計的一門語言,只不過是.Net平台上的另一門語言而已,這類語言貌似在一些特殊領域比較厲害,反正我是完全看不懂。


VB,F#,c#都是VS的平等公民,現在好像C#的生態好一點,沒啥聯繫,基本都一樣符合CLS,就是語法不同而已,編程寫代碼,最重要的是認真,多想,多看,多借鑒。代碼質量寫好了,比用什麼語言開發好的多。


推薦閱讀:
相关文章