没有循环的Clojure库递归。。。重现
我有一个关于iterate和Clojure库函数的问题,它们的实现类似于iterate没有循环的Clojure库递归。。。重现,clojure,loops,Clojure,Loops,我有一个关于iterate和Clojure库函数的问题,它们的实现类似于iterate (defn iterate 2 "Returns a lazy sequence of x, (f x), (f (f x)) etc. f must be free of side-effects" 3 {:added "1.0" 4 :static true} 5 [f x] (cons x (lazy-seq (iterate f (f x))))) 没有循环。。。r
(defn iterate
2 "Returns a lazy sequence of x, (f x), (f (f x)) etc. f must be free of side-effects"
3 {:added "1.0"
4 :static true}
5 [f x] (cons x (lazy-seq (iterate f (f x)))))
没有循环。。。recur不使用其堆栈,因为它是在惰性序列上操作的?是的,每次强制惰性序列中的下一个元素时,都会调用一次iterate,因此没有(立即)递归,也没有堆栈使用