假设我有这段代码
let identifier = spaces_surrounded (many1Satisfy isLetter)
我想知道是否有任何原生F#功能允许我将其重构为
let identifier = spaces_surrounded $ many1Satisfy isLetter
就是像
这样的东西let ($) f1 f2 = f1 (f2)
(如果我没弄错的话,我的Haskell技能不会太尖锐......)。
答案 0 :(得分:18)
标准的F#习惯用法是前向管道操作符|>
你要重写
let identifier = spaces_surrounded (many1Satisfy isLetter)
as
let identifier = many1Satisfy isLetter |> spaces_surrounded
如果你想维持原始订单,你也可以使用反向管道运算符<|
,但这往往不太常见
let identifier = spaces_surrounded <| many1Satisfy isLetter