cme*_*ren 3 f# function-composition
我有几个带签名的过滤功能'a -> bool.我想创建一个组合过滤器,AND是不同的过滤器.我知道我可以这样做:
let fCombined x =
f1 x
&& f2 x
&& f3 x
Run Code Online (Sandbox Code Playgroud)
有没有更简洁的方法来直接组合函数而不完全应用它们(例如,x从定义中删除fCombined)?
(我知道还有其他不使用的方法bool,例如使用'a -> 'a option函数并使用它们编写它们Option.bind,但这几乎不简洁.)
如果你想失去参数x,你可以让自己成为一个特殊的运算符:
let (&&.) f g x = f x && g x
let fCombined = f1 &&. f2 &&. f3
Run Code Online (Sandbox Code Playgroud)
但我不认为这是值得担心的事情.争论完全没问题.