Clojure:懒惰+core.logic:无限循环

4

背景

以下代码会无限循环:

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

问题:

这是预期的行为吗?(无限循环?)另一方面,像下面这样的代码:

(take 5 (range))

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

1个回答

0

这可能是一个bug,但那不是正确的做法,因为run*的结果无论如何都不是真正的lazy。

(run 5 [x]
   (listo (lcons `a (lcons `b (lcons `c x)))))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接