gpt4 book ai didi

haskell - 在过滤器函数中使用逻辑 && 连接谓词

转载 作者:行者123 更新时间:2023-12-01 21:30:48 24 4
gpt4 key购买 nike

我刚刚在 learnyouahaskell.com 偶然发现了这句话:

The filter equivalent of applying several predicates in a list comprehension is either filtering something several times or joining the predicates with the logical && function.

谁能为最后一部分举个例子(用逻辑 && 函数连接谓词)?

作者的意思是这样的吗(行不通):

filter ((>3) && (<10)) [5,3]

最佳答案

filter 的谓词参数是一个函数,因此您需要使用 lambda:

filter (\x -> x > 3 && x < 10) [5,3]

我想作者是假设读者会做适当的扩展。

也可以提升 bool 运算符以使用 (a ->) Applicative 实例对谓词进行操作:

filter (liftA2 (&&) (> 3) (< 10)) [5,3]

但我个人并不觉得这特别好。

关于haskell - 在过滤器函数中使用逻辑 && 连接谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62503327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com