我想这个:
[i | i <- [1..], i < 5]
Run Code Online (Sandbox Code Playgroud)
会产生
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
就像
take 4 [i | i <- [1..]]
Run Code Online (Sandbox Code Playgroud)
有限长度列表.
但它没有,它似乎是无限的,因为任何将它视为有限列表的尝试只会导致挂起(ghci).
我不确定如何理解这一点.它是某种无限的发电机,它只是在第四项之后什么都不产生但从未停止过?
基本上代码不断生成新项目,因为它不知道它们永远不能满足标准?