繁体   English   中英

中缀函数在F#中的部分应用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM