我注意到有一個小寫String.concat
在Microsoft.FSharp.Core
和一個大寫System.String.Concat
有幾個重載。智能感知挑選一個或另一個,如果我鍵入String.c
或System.String.C
concat in FSharp.Core.String vs Concat in System.String
是在Microsoft.FSharp.Core
的String.xyz
功能最好System.String.Xyz
功能或周圍的其他方式?每種功能的優缺點是什麼?
一般來說,在FSharp.Core中使用函數有哪些優缺點?
所以'FSharp.Core.String'的好處是它的具有多個參數的函數能夠部分應用,而'System.String'中的多參數函數不是必須的,因爲它們必須將它們的參數包含在圓括號中? (如果'System.String'函數只帶一個參數,則可以跳過圓括號) 還有其他優點嗎? – Soldalma
「curried」形式的一大優點是部分應用程序可讓您將該功能包含在管道鏈中。例如'[1..10] |> List.filter isOdd |> List.map(fun n - > n * 10)|> List.map(sprintf「%d」)|> String.concat「,」'產生字符串'「10,30,50,70,90」(如果你已經定義了'isOdd',當然)。而在該管道中使用'System.String.Join',則必須編寫'|>(fun lst - > System.String.Join(「,」,lst))''。我寧願寫'String.concat',''而不是'(fun lst - > System.String.Join(「,」,lst))':它更容易閱讀和理解前者的功能。 – rmunn