在Haskell中,可以使用sections部分应用中缀函数。例如,给定中缀函数<(小于),可以部分应用任何一个函数的参数:(5 <),(< 5)。
换句话说,在Haskell中,我们有以下速记符号:
F#是否有类似的概念?
换句话说,在Haskell中,我们有以下速记符号:
op :: a -> b -> c
(`op` y) === \x -> x `op` y
(x `op`) === \y -> x `op` y
F#是否有类似的概念?
<
是一个运算符,所以你可以像这样写出来(<) 5 10
,它的意思和5 < 10
是一样的。同样地,List.filter ((<) 5)
的意思和List.filter (fun x -> 5 < x)
是一样的。我能理解将代码读作“过滤小于 5 的项目列表”是多么容易,但我不认为这是一个陷阱。 - Juliet