尝试创建一个从列表中删除重复项并将其替换为单个元素的函数。不断收到错误消息“已删除函数中的非详尽模式”。我认为这意味着我的模式匹配缺少可能的情况?我想我已经涵盖了所有的可能性。我对 Haskell 很陌生,因此非常感谢任何帮助。
removeduplicate :: (Eq a) => [a] -> [a]
removeduplicate [] = []
removeduplicate (x:[]) = [x]
removeduplicate (x:z:[]) = if z == x then [x] else (x:z:[])
removeduplicate (x:y:[xs])
| x == y = x:(removeduplicate [xs])
| otherwise = x:y:(removeduplicate [xs])