4

语境

以下代码无限循环:

(defn ex13 []
  (take 5
        (run* [x]
       (listo (lcons `a (lcons `b (lcons `c x)))))))

问题:

这应该是正确的行为吗?(无限循环?)另一方面,代码如下:

(take 5 (range))

需要 5 个元素并将它们打印出来。

4

1 回答 1

0

这可能是一个错误,但这不是正确的方法,因为 run* 的结果无论如何都不是真正的懒惰。

(run 5 [x]
   (listo (lcons `a (lcons `b (lcons `c x)))))
于 2012-06-01T12:26:49.240 回答