gpt4 book ai didi

Haskell 多重过滤器

转载 作者:行者123 更新时间:2023-12-02 02:49:36 25 4
gpt4 key购买 nike

我想通过来自另一个列表的谓词过滤列表。
例如:

multifilter :: (a -> a -> Bool) -> [a] -> [a] -> [a]
multifilter _ _ [] = []
multifilter _ [] _ = []
multifilter f (x:xs) ys = (filter (f x) ys) ++ (multifilter f xs ys)

使用如:
prelude> multifilter (==) [1,2,3] [5,3,2]
[2,3]

有没有标准的方法来做到这一点?

最佳答案

您可以使用 intersectBy :

λ> :t intersectBy
intersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
λ> intersectBy (==) [1,2,3] [5,3,2]
[2,3]

您可以使用 hoogle使用类型签名搜索函数并找到它们。

关于Haskell 多重过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32431719/

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