List 在Haskell中删除列表中的重复元组
我不知道如何从元组列表中删除所有重复项 e、 g[1,2,2,1,5,2,5,6] 这里的副本是2,1,与顺序无关。我只想删除其中一个副本,我该怎么做List 在Haskell中删除列表中的重复元组,list,haskell,duplicates,tuples,List,Haskell,Duplicates,Tuples,我不知道如何从元组列表中删除所有重复项 e、 g[1,2,2,1,5,2,5,6] 这里的副本是2,1,与顺序无关。我只想删除其中一个副本,我该怎么做 symEq :: Eq a => (a,a) -> (a,a) -> Bool symEq (x,y) (u,v) = (x == u && y == v) || (x == v && y == u) removeDuplTuples :: Eq a => [(a,a)] -> [(
symEq :: Eq a => (a,a) -> (a,a) -> Bool
symEq (x,y) (u,v) = (x == u && y == v) || (x == v && y == u)
removeDuplTuples :: Eq a => [(a,a)] -> [(a,a)]
removeDuplTuples = nubBy symEq
这是我读过的一些代码,但我不认为它完全相关你发布的代码完全相关,它正是你想要的 让我们逐步了解它: symEq获取两个元组,并检查第一个和最后一个元素是否相等,或者是否相互交叉的元素相等 nubBy只是使用自定义函数而不是==的nub
nubBy在Data.List包中,只需在文件开头导入Data.List即可使用。在这种情况下,我希望2,1是一个副本。您是否尝试运行该代码?是的,它返回一个错误,表示nubBy是一个未定义的变量。nubBy在Data.List包中,你必须导入它才能使用它。@ThreeFx为什么这么快?我已经试过了,但是有一些导入错误reason@Sprout尝试导入数据。列出块状