在haskell中,可以使用部分部分地应用中缀函数,例如给定中缀函数< (小于)可以部分应用任何函数的参数:(5<),(< 5)
换句话说,在haskell中我们有以下简写符号:
op :: a -> b -> c
(`op` y) === \x -> x `op` y
(x `op`) === \y -> x `op` y
F#有类似的概念吗?
答案 0 :(得分:5)
不,这些都没有(除了标准的部分应用程序,如(=) x
)。
虽然我喜欢Seq.find ((=) x)
的简洁性,但Seq.filter ((<) 3)
(甚至Seq.map (flip (-) 1)
)之类的内容很难阅读,应该立即被lambda表达式替换为imo。
答案 1 :(得分:4)
如果你想发明自己的标准......
let lsection x f y -> f x y
let rsection f y x -> f x y
然后lsection 5 (<) === (5 <)
和rsection (<) 5 === (< 5)
。
尽管如此,如果没有语言支持,只需将lambda放在那里就会更清楚。