Haskell 中的斐波那契会冻结 pc?

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

Phi*_*ßen 5

我想,你的意思是写

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. 这就是为什么你有一个无限递归。