Home Articles

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

Asked
Viewed 1503 times
-1

Hello stackoverflow社区,

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

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

正如您所看到的,它是简单的递归 . 我得到了"Non-exhaustive pattern in function multiplyByTwo"例外 . 我不明白为什么我得到这个,因为我已经设置了最低值 multiplyByTwo 0 = 1 因此我猜这个函数在那之后没有调用自己 . 我所说的是我不明白为什么这种模式是"non-exhaustive" . 我假设您为x输入的数字是正数 .

谢谢你能给予的任何帮助 .

1 Answer

  • 7

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

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

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

Related