Я пытаюсь определить функцию, которая удалит дубликаты из списка. Пока у меня есть рабочая реализация:
rmdups :: Eq a => [a] -> [a]
rmdups [] = []
rmdups (x:xs) | x `elem` xs = rmdups xs
| otherwise = x : rmdups xs
Однако я хотел бы переработать это без использования elem
. Какой был бы лучший способ для этого?
Я хотел бы сделать это, используя мою собственную функцию, а не nub
или nubBy
.