SML中的斐波纳契数列

时间:2015-01-15 01:56:37

标签: sml

  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个数的实现有什么不正确?当我运行该程序时,它就会挂起......

1 个答案:

答案 0 :(得分:7)

fib n - 1相当于(fib n) - 1,而不是fib (n - 1)。因此,fib n = (fib n - 1) + (fib n - 2)行再次调用fib n,导致无限递归。

要解决此问题,请添加括号。