非穷举模式匹配用于ghci中的简单列表遍历

时间:2018-07-27 19:53:01

标签: haskell

这是一个返回uniq元素列表的函数:

Prelude> let uniq [] acc = acc
Prelude> uniq (x:xs) acc = if (elem x acc) then (uniq xs acc) else (uniq xs (x:acc))

当我尝试跑步时

uniq [1,2,3] []

我得到了错误

*** Exception: <interactive>:4:1-86: Non-exhaustive patterns in function uniq

我不明白问题出在哪里。检查函数uniq的类型后,我看到了:

uniq :: Eq a => [a] -> [a] -> p

我希望是这样的

uniq :: Eq a => [a] -> [a] -> [a]

在这种情况下,p是什么?我不匹配什么?

0 个答案:

没有答案