2013-10-08 30 views
1

在F#你有落後的管道運營商<|,它像它的兄弟|>作爲一種方式來傳遞參數成函數...有什麼要點<|在F#中?

現在我已經明白有|>,讓程序員很容易看到背後的偉大想法值的影響,而不是去通過嵌套函數調用鏈是真棒,看上去很美:

let newList = someList 
       |> List.map (fun x -> x * 3) 
       |> List.filter (fun x -> x > 12) 

所以我的問題是,如果函數被稱爲像funcName param反正,什麼是有funcName <| param點?

我也看過一些像這樣寫的功能func1 <| value |> func2這到底是做什麼的?

+0

雖然它不是重複的,但我已經看到了管道點 –

回答

6

避免括號存在,類似於Haskell中的$。請參閱部分功能應用程序,其中$Learn You a Haskell

+3

請注意,'$'是右關聯的,而'<|'是左關聯的。 –

+0

會造成什麼樣的影響? –

+1

@ElectricCoffee解析器會以不同的順序讀取代碼,所以最好你會得到類型相關的錯誤,最壞的情況是,代碼將在運行時按類型檢查然後以不同的順序執行。 –

相關問題