haskell,链接过滤器

标签 haskell filter

将“map f (map g xs)”写入您可以编写的对 map 的单个调用

example xs = map (f.g) xs

但是您如何将“filter p (filter q xs)”编写为对过滤器的单个调用?点运算符似乎不适用于过滤器,因为它适用于 map 。猜测您会使用其他东西作为谓词?

最佳答案

如果您定义了一个如下所示的函数 both:

both :: (a -> Bool) -> (a -> Bool) -> a -> Bool
both f g x = f x && g x

然后你可以写:

example xs = filter (both p q) xs

我不确定是否有一个标准函数可以为您执行此操作...

关于haskell,链接过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1712031/

相关文章:

haskell - 修正错误(Haskell)简单的蛇棋游戏

haskell - 管理状态 - SICP 第 3 章

linux - 在同一终端实例中显示多个日志的输出

haskell - 使用无点身份函数而不是通配符有优势吗?

list - Haskell 声明空列表,但实际上哪个不是空的?

haskell - 为什么 f=(+) 不需要类型注释?

azure - Kusto 查询对标签名称(键)而不是值进行不区分大小写的过滤

hibernate - 如何在不使用xml或注释的情况下添加Hibernate 5过滤器定义?

javascript - 如何使用js过滤方法查找包含特定字符串的项目数

python - 根据日期范围对 Panda Dataframe 中的数据进行排序和过滤