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

标签 list haskell tuples

假设我有元组列表,例如

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

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

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

最佳答案

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

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

关于list - 删除具有相同元素但顺序不同的元组列表的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16097038/

相关文章:

haskell - 使用 Either monad ("railway-oriented programming"时如何处理回滚)

list - Haskell Tuple 在无限列表上的解构在将 Tuple 作为参数解构时与使用 let 解构时的行为不同

algorithm - 元组列表中的添加

python - 读取包含值列表到数组中的文件

具有可变步长的 Python 列表切片?

c# - 合并多个列表

python - 如何使用 matplotlib 绘制元组列表?

python - 有效地从 python 中的列表中删除也在给定列表中的元素

haskell - Haskell的Lens库中ix和element有什么区别

haskell - 添加 ghci 的推断类型签名会导致错误