aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/seq_utils.clj
diff options
context:
space:
mode:
authorChristophe Grand <christophe@cgrand.net>2009-02-23 17:53:28 +0000
committerChristophe Grand <christophe@cgrand.net>2009-02-23 17:53:28 +0000
commit188682d2022573b832bf5c72d115f56938eee8e8 (patch)
tree6b25226d8d33ba9982cc1ca2374d3c45b08f72f0 /src/clojure/contrib/seq_utils.clj
parent4e6c3a8c9abce25c0f8a601e130b379382267c90 (diff)
back to a mutation-based rec-seq
Diffstat (limited to 'src/clojure/contrib/seq_utils.clj')
-rw-r--r--src/clojure/contrib/seq_utils.clj6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/clojure/contrib/seq_utils.clj b/src/clojure/contrib/seq_utils.clj
index 007c1755..de30ecfb 100644
--- a/src/clojure/contrib/seq_utils.clj
+++ b/src/clojure/contrib/seq_utils.clj
@@ -94,9 +94,9 @@
"Similar to lazy-seq but binds the resulting seq to the supplied
binding-name, allowing for recursive expressions."
[binding-name & body]
- `((fn helper# []
- (lazy-seq (let [~binding-name (helper#)] ~@body)))))
-
+ `(let [s# (atom nil)]
+ (swap! s# (constantly (lazy-seq (let [~binding-name @s#] ~@body))))))
+
(defmacro rec-cat
"Similar to lazy-cat but binds the resulting sequence to the supplied
binding-name, allowing for recursive expressions."