例如,我在F#中有一个谓词
let myFunc x y = x < y
有没有办法创建此函数的否定版本?
所以在功能上类似于
let otherFunc x y = x >= y
但是通过使用原始的myFunc?
let otherFunc = !myFunc // not valid
您尝试做的事情称为“功能组合”。查看f#的函数组合运算符:
我没有可用于实验的编译器,但您可以从
let otherFunc = myFunc >> not
并通过错误来解决问题。
编辑:马克斯·马卢克(Max Malook)指出,这不适用于的当前定义myFunc
,因为它需要两个参数(在某种意义上,这是功能域)。因此,为了使这项工作有效,myFunc
将需要更改为接受元组:
let myFunc (a, b) = a > b
let otherFunc = myFunc >> not
let what = otherFunc (3, 4)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句