我有一个关于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)))))没有循环..。循环迭代不会消耗它的堆栈,因为它是在惰性序列上操作的?
发布于 2011-10-27 23:12:53
是的,每次你在惰性序列中强制下一个元素,iterate都会被调用一次,因此没有(立即)递归,也没有堆栈消耗。
https://stackoverflow.com/questions/7917813
复制相似问题