【发布时间】:2019-04-16 14:20:04
【问题描述】:
给出一个对的列表,例如
[(1, 2), (1, 3), (1, 4), (2, 1), (3, 1), (4, 1)]
所以,我正在尝试删除重复的对,如果 (x, y) == (y, x),我认为一对重复,例如:(1, 2) 和 (3, 1)
我正在生成带有理解列表的列表,它来自一个列表
MyList = [(intA, intB) | x <- integerList, y <- integerList, x /= y]
integerList = [1, 2, 3];
请注意,我写的第一件事只是我想要发生的事情的一个例子,它不是上面理解列表的输出。
我最近开始使用 Haskell,我将如何解决这个问题?什么是最好的选择?我尝试使用地图,但没有成功,我应该将地图与在其中使用反向的 foldl / foldr 结合起来吗?我该怎么做?
【问题讨论】:
-
错字?
(1, 2) with (3, 1) -
先写
isPairDuplicate :: (Int,Int) -> (Int, Int) -> Bool(然后将其发布在您的问题中,以便我们知道您在说什么)。 -
那么我建议考虑编写一个在列表上使用模式匹配的递归解决方案,如果你感觉很疯狂,也许
filter。
标签: haskell