地道的F 函式式 vs 命令式

2021-06-03 04:42:13 字數 772 閱讀 5530

我們的故事要從這個叫

stuart bowers

的傢伙開始,下圖中,他正拿著乙個來自

café

press

**的杯子喝著咖啡,此杯子正是他對函式式程式設計做出出色貢獻的象徵。

stuart

是amalga

(乙個微軟推出的醫療系統)專案的乙個開發者,也是微軟公司的一位全職員工。此人不寫部落格——此乃世界的一大損失也…

不管怎樣,他還是幫我審讀過

我寫的書

中的幾個章節,並且最近我們還有一次促膝長談,討論並分享怎樣才是乙個地道的

f#風格的話題。 問題

提問:在編寫下面的**時,怎樣才是「正確的

f#方式」:

建立乙個共享的,可變得值並且生成聊個執行緒池用來累加乙個

list(f#

中的鍊錶)中的元素。(故意建立乙個競爭的環境,此乃這個**示例的關鍵所在。)

命令式(?)方法

讓我們以如何使用命令式方式來回答此問題作為開始。

然而,這也有一些弊端:

函式式(?)方法

現在讓我們來看看如何用更函式式的風格實現它。

讓我們先來看看這個函式式風格的弊端:

雖然可以說是混淆,但函式式風格提供了一些明顯的好處:

就我而言,我部分地支援

第乙個例子的簡單,但是第二個例子在呼叫範圍值的價值不應該被忽視。我最喜歡

f#的乙個地方是它是多正規化的語言,即通常情況下有乙個以上的方法來解決問題,這意味著你有多個選擇。

地道的F 函式式 vs 命令式

我們的故事要從這個叫 stuart bowers 的傢伙開始,下圖中,他正拿著乙個來自 caf press 的杯子喝著咖啡,此杯子正是他對函式式程式設計做出出色貢獻的象徵。stuart 是amalga 乙個微軟推出的醫療系統 專案的乙個開發者,也是微軟公司的一位全職員工。此人不寫部落格 此乃世界的一...

函式式程式語言F

文 高昂 作為微軟支援的第乙個函式式語言,f 在專案中被越來越多的開發者選用,8月的tiobe排行榜,f 挺進前二十。源於微軟研究院的f 語言因其優良的設計和強大的並行程式設計能力,正得到越來越多.net開發者的選用。在8月的tiobe語言流行度排行榜中,f 語言首次進入了前二十位。f 是微軟.ne...

命令式至函式式隨記(三)

english 函式式的思考中心就是分解問題,舉例來說,計算list長度命令式如下 def length list c 0 for i in list c 1 return c 將之改為函式式是許多介紹函式式的文章會有的範例 def length list return 0 if list else...