模式不匹配:Haskell

Patterns not matched: Haskell

我编写了一个将列表作为输入并输出其元素总和的函数,但我收到以下错误:“模式匹配并不详尽 在“addfunc”的方程式中:模式不匹配:[]"

这是我的代码:

addfunc :: [Int] -> Int
addfunc(x:xs) = x + addfunc xs

进行模式匹配时,您必须列出所有可能的情况,以便您的程序知道针对每个可能的输入要做什么。这里,可能的输入是所有整数列表,其中还包括一个空列表(零整数列表)。当输入有第一个元素和其他元素时,你的函数知道该做什么;但是如果它收到一个空列表(无法分解为第一个元素和其他元素),它就不知道该怎么办了。

要更正它,只需提供缺失案例的匹配规则,例如

addfunc [] = 0