背景
以下代码会无限循环:
(defn ex13 []
(take 5
(run* [x]
(listo (lcons `a (lcons `b (lcons `c x)))))))
问题:
这是预期的行为吗?(无限循环?)另一方面,像下面这样的代码:
(take 5 (range))
取5个元素并将它们打印出来。
以下代码会无限循环:
(defn ex13 []
(take 5
(run* [x]
(listo (lcons `a (lcons `b (lcons `c x)))))))
这是预期的行为吗?(无限循环?)另一方面,像下面这样的代码:
(take 5 (range))
取5个元素并将它们打印出来。
这可能是一个bug,但那不是正确的做法,因为run*的结果无论如何都不是真正的lazy。
(run 5 [x]
(listo (lcons `a (lcons `b (lcons `c x)))))