haskell - Haskell 中的 Fibonacci 会卡住电脑吗?

标签 haskell recursion freeze

我是 Haskell 的初学者,我试图编写 fibonacci 函数,但每次运行它时我的电脑都会死机。我不知道为什么。这是我的代码:

fib n = if n<=2 then 1 else (fib n-1)+(fib n-2)

我不知道它是否有任何帮助,但我在 Ubuntu 20.04 中使用 GHC

最佳答案

我想,你是想写

fib n = if n<=2 then 1 else fib (n-1) + fib (n-2)

fib n-1 将被解释为 (fib n) - 1。这就是为什么你有一个无限递归。

关于haskell - Haskell 中的 Fibonacci 会卡住电脑吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64016414/

相关文章:

haskell - 无法推断由于使用 `pi' 而产生的(Floating a)

haskell - 如何创建包含理性元素的列表

php - 递归完成后,如何清除 PHP 中的静态变量?

Eclipse 在建议弹出窗口时卡住

haskell - 解析 PHOAS 表达式

linux - 反终端 : unexpected behavior on Windows

html - 通过套接字下载 HTTP (C)

MySQL 5.7.14 社区服务器安装在 macOS 10.12 上卡住

php - 递归填充数组

python - 当我尝试从循环中进行递归时出现 UnboundLocalError ?