如何撰写bool返回函数

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,但这几乎不简洁.)

Fyo*_*kin 8

如果你想失去参数x,你可以让自己成为一个特殊的运算符:

let (&&.) f g x = f x && g x

let fCombined = f1 &&. f2 &&. f3
Run Code Online (Sandbox Code Playgroud)

但我不认为这是值得担心的事情.争论完全没问题.