我有这样的代码:
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
Run Code Online (Sandbox Code Playgroud)
当我在上面输入Haskell解释器后:
Prelude> n
Run Code Online (Sandbox Code Playgroud)
我得到了无限的结果:
[0,0,0,0,0,0,0,0,0
Run Code Online (Sandbox Code Playgroud)
打印"0"的地方是无限的.
为什么我会得到这样的结果?
是否有一些递归的东西,为什么/它如何在解释器级别工作?
我可以抓住堆栈溢出,GHCi上的这些东西是不是?
谢谢,
最诚挚的问候!
乔什所说的是你对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
...
Run Code Online (Sandbox Code Playgroud)