Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 在Haskell中删除列表中的重复元组_List_Haskell_Duplicates_Tuples - Fatal编程技术网

List 在Haskell中删除列表中的重复元组

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)] -> [(

我不知道如何从元组列表中删除所有重复项 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)] -> [(a,a)]
removeDuplTuples = nubBy symEq

这是我读过的一些代码,但我不认为它完全相关

你发布的代码完全相关,它正是你想要的

让我们逐步了解它:

symEq获取两个元组,并检查第一个和最后一个元素是否相等,或者是否相互交叉的元素相等

nubBy只是使用自定义函数而不是==的nub


nubBy在Data.List包中,只需在文件开头导入Data.List即可使用。

在这种情况下,我希望2,1是一个副本。您是否尝试运行该代码?是的,它返回一个错误,表示nubBy是一个未定义的变量。nubBy在Data.List包中,你必须导入它才能使用它。@ThreeFx为什么这么快?我已经试过了,但是有一些导入错误reason@Sprout尝试导入数据。列出块状