您发现自己最常使用这两种替代品中哪一种更具“习惯性”?
答案 0 :(得分:5)
总的来说,我不知道其中一个是更惯用的。
就个人而言,我唯一一次使用< |是“加薪”:
raise <| new FooException("blah")
除此之外,我总是使用parens。请注意,由于大多数F#代码使用curried函数,这通常不意味着任何“额外”的parens:
f arg (g x y)
当你进入非curried函数和构造函数时,它会开始变得不那么漂亮了:
f arg (g(x,y))
我们可能至少考虑更改F#语言规则,以便高优先级应用程序更紧密地绑定;现在
f g()
解析
f g ()
但是很多人都希望它能够解析为
f (g())
(原始问题中的激励案例)。如果您对此有强烈意见,请对此回复发表评论。
答案 1 :(得分:2)
因为类型推断从左到右工作,使用|>
的好处是它允许F#推断函数参数的类型。
作为一个人为的例子,
[1; 2; 3] |> (fun x -> x.Length*2)
工作正常,但
(fun x -> x.Length*2) [1; 2; 3]
抱怨“查找不确定类型的对象”。
答案 2 :(得分:0)
我经常使用(),但这只是偏好,我很确定&lt; |更加个性化,但我习惯使用()。
答案 3 :(得分:0)
只要有可能,我更喜欢|&gt;因为它从左到右读取。