函数应用程序运算符($)在F#中?

时间:2011-08-25 00:38:38

标签: .net f# functional-programming

假设我有这段代码

let identifier = spaces_surrounded (many1Satisfy isLetter)

我想知道是否有任何原生F#功能允许我将其重构为

let identifier = spaces_surrounded $ many1Satisfy isLetter

就是像

这样的东西
let ($) f1 f2 = f1 (f2)

(如果我没弄错的话,我的Haskell技能不会太尖锐......)。

1 个答案:

答案 0 :(得分:18)

标准的F#习惯用法是前向管道操作符|>你要重写

let identifier = spaces_surrounded (many1Satisfy isLetter)

as

let identifier = many1Satisfy isLetter |> spaces_surrounded 

如果你想维持原始订单,你也可以使用反向管道运算符<|,但这往往不太常见

let identifier = spaces_surrounded <| many1Satisfy isLetter