元组列表的交集 - Haskell

时间:2015-12-17 11:26:53

标签: list haskell tuples

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

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

1 个答案:

答案 0 :(得分:2)

您可以使用Data.Function.on函数为元组的第一个(或第二个)元素提供所需的函数:

import Data.Function (on)
import Data.List (intersectBy)

intersectBy ((==) `on` fst) [(1,2), (2,3), (3,4)] [(1,2), (2,3), (3,5)]
> [(1,2),(2,3),(3,4)]