我正在尝试在haskell中创建一个函数,其中一个列表作为参数输入,它返回或显示列表,但重复项被消除,即:
输入[1,2,3,4,1,2]
并显示[1,2,3,4]
。它也可以是字符,不一定是数字。
像这样的东西:
deleteDuplicate :: [a] -> [a]
我正在尝试在haskell中创建一个函数,其中一个列表作为参数输入,它返回或显示列表,但重复项被消除,即:
输入[1,2,3,4,1,2]
并显示[1,2,3,4]
。它也可以是字符,不一定是数字。
像这样的东西:
deleteDuplicate :: [a] -> [a]
Haskell 模块
Data.List
已经有一个函数,nub
它在时间从列表中删除重复的元素O(n^2)
。定义此函数的一种简单方法是获取
x
列表的头部(x:xs)
,删除x
尾部出现的xs
(过滤掉除x
使用函数之外的元素filter
),并递归删除重复的元素。