说我有元组列表,例如
[(1,2),(2,1),(3,5)]
如何定义一个函数,以便删除具有相似元素但排序不同的元组?所以列表变成了
[(1,2),(3,5)]
答案 0 :(得分:6)
将nubBy
与等效函数一起使用,该函数将两个具有交换或未交换的相等元素的元组进行比较。 The swap
function让这更容易:
nubSwapped :: (Eq a) => [(a, a)] -> [(a, a)]
nubSwapped = nubBy $ \a b -> a == b || swap a == b