Akash Arjun Asked: 2025-04-09 03:59:34 +0800 CST2025-04-09 03:59:34 +0800 CST 2025-04-09 03:59:34 +0800 CST ghci 终端无响应[重复] 772 我读到变量在 haskell 中是不可变的,并且类似下面的内容在 haskell 中不起作用。 x = 30 x = x+1 但我仍然尝试这样做,看看编译器返回了什么,我得到了以下结果: 编译器变得无响应并且不执行任何操作,直到我按下 ctrl+c 并中断它。 为什么会发生这种情况?为什么编译器变得无响应而不是返回某种错误? haskell 1 个回答 Voted Best Answer Noughtmare 2025-04-09T04:13:30+08:002025-04-09T04:13:30+08:00 Haskell 中的定义可以是递归的,值的定义也可以是递归的。例如,当你这样写: x = x + 1 这与用 Python 编写的类似: def x(): return x() + 1 当您尝试评估时x,您的程序会陷入无限循环。
Haskell 中的定义可以是递归的,值的定义也可以是递归的。例如,当你这样写:
这与用 Python 编写的类似:
当您尝试评估时
x
,您的程序会陷入无限循环。