[英]Partial Application of Infix Functions in F#
在haskell中,使用section来部分应用中缀函数是可行的,例如,给定中缀函数<(小于)可以部分应用任何函数的参数:(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.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,它就会更清晰。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.