我有这样的代码:
Prelude> let n = [1,2,3,4]
Prelude> n
[1,2,3,4]
Prelude> 0:n
[0,1,2,3,4]
Prelude> let n = 0:n
当我在上层之后输入 Haskell 解释器时:
Prelude> n
我得到了无限的结果:
[0,0,0,0,0,0,0,0,0
打印“0”的地方是无限的。
为什么我会得到这样的结果?
是否有一些递归的东西,为什么/如何在解释器级别工作?
我能不能捕获堆栈溢出,GHCi 上有哪些这样的东西?
谢谢,
此致!
最佳答案
Josh 所说的是你对 n 的定义扩展为:
0:n. -- note n still equals 0:n, just like you said
0:0:n. -- note n _still_ equals 0:n
0:0:0:n
...
关于Haskell 无限循环,只需重新让 Action ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9814897/