我编写了一个函数,该函数将列表作为输入并输出其元素的总和,但是出现以下错误:“模式匹配不完全。在'addfunc'的方程式中:模式不匹配:[] ”
这是我的代码:
addfunc :: [Int] -> Int
addfunc(x:xs) = x + addfunc xs
模式匹配时,您必须列出所有可能的情况,以便您的程序知道对每种可能的输入应执行的操作。在这里,可能的输入是所有整数列表,其中还包括一个空列表(零整数列表)。您的函数知道当输入包含第一个元素和其他元素时该怎么做;但是如果它应该收到一个空列表(不能分解为第一个元素和其他元素),它将不知道该怎么做。
要纠正它,只需为丢失的案例提供匹配规则,例如
addfunc [] = 0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句