-1

你好 stackoverflow 社区,

我有一段相当简单的代码出现了一个奇怪的错误。这是我的代码:

multiplyByTwo 0 = 1
myltiplyByTwo x = 2 * multiplyByTwo (x-1)

如您所见,这是简单的递归。我收到“函数 multiplyByTwo 中的非详尽模式”异常。我不明白为什么我会得到这个,因为我已经设置了最低值multiplyByTwo 0 = 1,因此我猜该函数在那之后不会调用自己。我的意思是我不明白为什么这种模式是“非详尽的”。我假设您为 x 输入的数字是正数。

感谢您提供的任何帮助。

4

1 回答 1

7

您在第二行中有错字:

myltiplyByTwo x = 2 * multiplyByTwo (x-1)
 ^

因此,它定义了一个新函数,并且multiplyByTwo只为参数 0 定义。

于 2012-10-16T23:20:47.917 回答