我有两个元组列表,形式为[(a,b),..]。
我希望比较它们并获得共同的元素 - 但尝试使用交叉,但这不起作用。有没有办法使用map / filter将交集输出为新的元组列表?
答案 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)]