Adr*_*ian 1 recursion haskell freeze
我是Haskell的初学者,我试图编写fibonacci函数,但每次运行它时,我的电脑都会冻结。我不知道为什么。这是我的代码:
fib n = if n<=2 then 1 else (fib n-1)+(fib n-2)
Run Code Online (Sandbox Code Playgroud)
我不知道它是否有任何帮助,但我在 Ubuntu 20.04 中使用 GHC
我想,你的意思是写
fib n = if n<=2 then 1 else fib (n-1) + fib (n-2)
Run Code Online (Sandbox Code Playgroud)
fib n-1
将被解释为(fib n) - 1
. 这就是为什么你有一个无限递归。