1 fun fib 0 = 0
2 | fib 1 = 1
3 | fib n = (fib n-1) + (fib n-2)
4
5 val x = fib 8
斐波纳契序列中第n个数的实现有什么不正确?当我运行该程序时,它就会挂起......
答案 0 :(得分:7)
fib n - 1
相当于(fib n) - 1
,而不是fib (n - 1)
。因此,fib n = (fib n - 1) + (fib n - 2)
行再次调用fib n
,导致无限递归。
要解决此问题,请添加括号。