【问题标题】:How to compose bool-returning functions如何组合布尔返回函数
【发布时间】:2023-03-21 11:50:01
【问题描述】:

我有几个带有签名'a -> bool 的过滤函数。我想创建一个组合过滤器,它是不同的过滤器。我知道我可以这样做:

let fCombined x =
    f1 x 
    && f2 x
    && f3 x

是否有任何更简洁的方法可以直接组合函数而不完全应用它们(例如,从fCombined 的定义中删除x)?

(我知道还有其他不使用bool 的方法,例如使用'a -> 'a option 函数并使用Option.bind 组合它们,但这几乎没有更简洁。)

【问题讨论】:

    标签: f# function-composition


    【解决方案1】:

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

    let (&&.) f g x = f x && g x
    
    let fCombined = f1 &&. f2 &&. f3
    

    但我不认为这是需要担心的事情。有论据完全没问题。

    【讨论】:

    • 谢谢,我不知道如何定义运算符。
    猜你喜欢
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 2021-10-29
    • 2021-09-27
    • 2012-07-15
    • 2013-03-11
    相关资源
    最近更新 更多