簡體   English   中英

Clojure Library Recursion沒有循環...復發

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM