我正在为明天的测试进行培训,以完成对函数式编程的介绍,但有一件事我不明白。
每当我有这样的程序时:
test [] = []
test (x:xs) = test (xs)
他所做的是从列表中取出第一个元素并继续其余的。每当只剩下一个时,xs
应该[]
依次触发test [] = []
。但是每当我运行这个算法时,我都会得到一个错误。Exception: <interactive>:20:5-16: Non-exhaustive patterns in function test.
我在网上找不到明确的解释。有人可以给我一个链接,其中解释清楚或向我解释吗?