4

在 haskell 中,可以使用部分部分应用中缀函数,例如,给定中缀函数 <(小于),可以部分应用函数的任何参数: (5 <) , (< 5)

换句话说,在 haskell 中,我们有以下速记符号:

op :: a -> b -> c
(`op` y) === \x -> x `op` y
(x `op`) === \y -> x `op` y

F#有类似的概念吗?

4

2 回答 2

5

不,这些都不是(除了标准的部分应用程序,如(=) x)。


虽然我喜欢 的简洁性Seq.find ((=) x),但Seq.filter ((<) 3)(或什Seq.map (flip (-) 1)至)之类的东西读起来很尴尬,应该立即用 lambda 表达式 imo 替换。

于 2010-01-01T22:16:33.850 回答
4

如果您想发明自己的标准...

let lsection x f y -> f x y
let rsection f y x -> f x y

然后lsection 5 (<) === (5 <)rsection (<) 5 === (< 5)

虽然真的,没有语言支持,只要在里面放一个 lambda,它会更清晰。

于 2010-01-01T22:50:52.030 回答