【发布时间】:2017-12-17 14:26:07
【问题描述】:
我正在尝试学习 Haskell,我定义了以下简单的递归函数来计算阶乘。
fact n | n < 0 = error "fact only valid for non-negative integers"
| n == 0 = 1
| n > 0 = n * fact(n-1)
它适用于正整数,并且正如预期的那样,当使用负整数调用时,它会抛出我指定的错误。
有什么问题?:当我尝试将它应用于分数时,它给了我同样的错误(“事实仅对非负整数有效”),例如fact 10.5。为什么它给我同样的错误,我已经明确指出应该只适用于 n
【问题讨论】: