用于删除具有相同元素但顺序不同的元组列表的函数

时间:2013-04-19 04:09:19

标签: list haskell tuples

说我有元组列表,例如

[(1,2),(2,1),(3,5)]

如何定义一个函数,以便删除具有相似元素但排序不同的元组?所以列表变成了

[(1,2),(3,5)]

1 个答案:

答案 0 :(得分:6)

nubBy与等效函数一起使用,该函数将两个具有交换或未交换的相等元素的元组进行比较。 The swap function让这更容易:

nubSwapped :: (Eq a) => [(a, a)] -> [(a, a)]
nubSwapped = nubBy $ \a b -> a == b || swap a == b