Fibonacci Haskell实现的问题

Jim*_*ies 0 stack-overflow haskell fibonacci

刚刚开始重新学习Haskell(在大学做过,但忘了大部分)并且认为我会实现一个斐波那契函数来开始.但是,我不断得到一个stackoverflow,即使是非常小的n.

有人能发现我的功能有什么问题吗?

fib :: Integer -> Integer
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n+1)
Run Code Online (Sandbox Code Playgroud)

How*_*ard 7

您的斐波纳契公式有错误:

fib :: Integer -> Integer
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
Run Code Online (Sandbox Code Playgroud)

请注意最后一个术语,n-2而不是n+1.