F#样式-首选()或者<|
时间:2020-03-06 14:55:03 来源:igfitidea点击:
我们会发现这两种选择中的哪一种最常用,哪种更"惯用"?
- f arg(obj.DoStuff())
- f arg <| obj.DoStuff()
解决方案
我经常使用(),但这只是偏爱,我敢肯定<|更像偶像,但我习惯使用()。
只要有可能,我都更喜欢|>,因为它从左到右读取。
总体而言,我不知道这两者中的哪一个更为惯用。
就个人而言,只有我使用<|与"提高":
raise <| new FooException("blah")
除此之外,我总是使用parens。请注意,由于大多数Fcode使用咖喱函数,因此这通常并不意味着任何"额外"的括号:
f arg (g x y)
进入非咖喱函数和构造函数时,它开始变得不那么漂亮了:
f arg (g(x,y))
我们可能至少会考虑更改Flanguages规则,以便使更高优先级的应用程序更紧密地绑定在一起。现在
f g()
解析像
f g ()
但很多人希望将其解析为
f (g())
(原始问题中的激励案例)。如果我们对此有强烈的意见,请对此回复发表评论。
因为类型推断从左到右起作用,所以使用|>
的好处是它允许F推断函数自变量的类型。
举一个人为的例子
[1; 2; 3] |> (fun x -> x.Length*2)
效果很好,但是
(fun x -> x.Length*2) [1; 2; 3]
抱怨"在不确定类型的对象上查找"。