尝试创建一个从列表中删除重复项的函数,并将其替换为单个元素.继续收到错误消息"函数removedplicate中的非穷举模式".我认为这意味着我的模式匹配缺少可能的情况?我想我已经涵盖了所有的可能性.我对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])
Run Code Online (Sandbox Code Playgroud)