哈斯克尔有多懒惰?
为什么以下不知道何时停止?
sum ([n^2 | n <- [1..], odd (n^2), n^2 < 100])
Sebastian Re.. 12
这不是关于它是多么懒惰,而是它是否有任何方式可能知道n^2 < 100
一旦它是假的,它将永远不再是真的.它没有.
数组理解的这些部分是过滤表达式,而不是停止条件.
这不是关于它是多么懒惰,而是它是否有任何方式可能知道n^2 < 100
一旦它是假的,它将永远不再是真的.它没有.
数组理解的这些部分是过滤表达式,而不是停止条件.
仅仅因为11 ^ 2超过100并不意味着13 ^ 2超过100.嗯......好吧,确实如此,但GHC应该如何解决这个问题呢?它是一个编译器,而不是任意数学真理的证明者.