list - 元组列表的交集 - Haskell

标签 list haskell tuples

我有两个元组列表,都是 [(a,b),..] 形式的。

我希望比较它们并获得共同的元素 - 但已尝试使用相交,但这不起作用。有没有办法使用 map/filter 将交集输出为新的元组列表?

最佳答案

尝试使用列表理解:

[x | x <- list1, x `elem` list2]

例子:

Prelude> let list1 = [(1,2), (2,3), (3,4)]
Prelude> let list2 = [(1,2), (2,3), (3,5)]
Prelude> [x | x <- list1, x `elem` list2]
[(1,2),(2,3)]

无论如何,intersect 应该有用,它对我有用:

Prelude> import Data.List
Prelude Data.List> list1 `intersect` list2
[(1,2),(2,3)]

关于list - 元组列表的交集 - Haskell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34333432/

相关文章:

haskell - 排序功能似乎并没有打破联系

scala - 遍历任意长度的元组

ios - for语句中的这行代码是什么意思或做什么?

java - 相对排序 - insertBefore() 和 insertAfter() 方法

reactjs - Material UI - 分层有序列表

haskell - Haskell 中的 'let' 和变量

Haskell 非详尽模式缺失

python - tuple() 是否复制参数的元素?

python - 将列表扩展 n 的最小方法

list - 如何进行设置差异,除非不消除重复元素