在 haskell 中,可以使用部分部分应用中缀函数,例如,给定中缀函数 <(小于),可以部分应用函数的任何参数: (5 <) , (< 5)
换句话说,在 haskell 中,我们有以下速记符号:
op :: a -> b -> c
(`op` y) === \x -> x `op` y
(x `op`) === \y -> x `op` y
F#有类似的概念吗?
不,这些都不是(除了标准的部分应用程序,如(=) x
)。
虽然我喜欢 的简洁性Seq.find ((=) x)
,但Seq.filter ((<) 3)
(或什Seq.map (flip (-) 1)
至)之类的东西读起来很尴尬,应该立即用 lambda 表达式 imo 替换。
如果您想发明自己的标准...
let lsection x f y -> f x y
let rsection f y x -> f x y
然后lsection 5 (<) === (5 <)
和rsection (<) 5 === (< 5)
。
虽然真的,没有语言支持,只要在里面放一个 lambda,它会更清晰。