Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有循环的Clojure库递归。。。重现_Clojure_Loops - Fatal编程技术网

没有循环的Clojure库递归。。。重现

没有循环的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

我有一个关于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)))))

没有循环。。。recur不使用其堆栈,因为它是在惰性序列上操作的?

是的,每次强制惰性序列中的下一个元素时,都会调用一次iterate,因此没有(立即)递归,也没有堆栈使用