[英]Clojure Library Recursion Without loop … recur
我有一個關於迭代和Clojure庫函數的問題,類似於迭代實現。
(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會迭代不消耗它的堆棧,因為它在一個惰性序列上運行?
是的,每次在延遲序列中強制下一個元素時,迭代被調用一次,因此沒有(立即)遞歸,也沒有堆棧消耗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.