【发布时间】:2014-01-11 22:13:00
【问题描述】:
我在随机阅读 Clojure 源代码时看到了 partition function was defined in terms of recursion without using "recur":
(defn partition
... ...
([n step coll]
(lazy-seq
(when-let [s (seq coll)]
(let [p (doall (take n s))]
(when (= n (count p))
(cons p (partition n step (nthrest s step))))))))
... ...)
这样做有什么理由吗?
【问题讨论】:
标签: recursion clojure tail-recursion lazy-sequences