【发布时间】:2020-06-06 15:14:57
【问题描述】:
只是试图做 Hal Daumé III 的 YAHT 手册的练习 3.7(第 31 页),我试图定义斐波那契函数:
fibo 1 = 1
fibo 2 = 1
fibo n = fibo(n-1) + fibo(n-2)
然后我要求
fibo(3)
得到:
*** Exception: stack overflow
当我查看练习的解决方案时,我发现了完全相同的代码(不同之处在于该函数被称为 fib 而不是 fibo)。我做错了什么?
(手册是 2006 年的,可能语言在中间发生了变化?) (讽刺的是,我向stackoverflow询问堆栈溢出的问题……)
【问题讨论】:
-
ghci中的多行语句需要在:{和:}之间进行包装,否则您应该使用其他机制。现在您在第二行定义了一个新函数fibo,在第三行定义了另一个。
标签: haskell stack-overflow fibonacci