一个非常简单的函数的“功能非穷举模式”?

时间:2012-10-16 23:18:12

标签: haskell recursion

Hello stackoverflow社区,

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

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

正如您所看到的,它是简单的递归。我正在获得“功能上的非详尽模式” multiplyByTwo“异常。我不明白为什么我得到这个,因为我已经设置了最低值multiplyByTwo 0 = 1因此我猜这个函数在那之后没有调用自己。我说的是我做的不明白为什么这种模式是“非详尽的”。我假设你为x输入的数字是正数。

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:7)

你在第二行有一个拼写错误:

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

因此定义了一个新函数,multiplyByTwo仅为参数0定义。