aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/seq_utils.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/clojure/contrib/seq_utils.clj')
-rw-r--r--src/clojure/contrib/seq_utils.clj12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/clojure/contrib/seq_utils.clj b/src/clojure/contrib/seq_utils.clj
index 36a8e07d..939905f4 100644
--- a/src/clojure/contrib/seq_utils.clj
+++ b/src/clojure/contrib/seq_utils.clj
@@ -77,7 +77,8 @@
(when-let [s (seq coll)]
(let [fv (f (first s))
run (take-while #(= fv (f %)) s)]
- (lazy-cons run (partition-by f (drop (count run) s))))))
+ (lazy-seq
+ (cons run (partition-by f (drop (count run) s)))))))
(defn frequencies
"Returns a map from distinct items in coll to the number of times
@@ -106,7 +107,7 @@
not be recursive."
[binding-form expr & rec-exprs]
`(let [rec-rest# (atom nil)
- result# (lazy-cons ~expr (force @rec-rest#))
+ result# (lazy-seq (cons ~expr (force @rec-rest#)))
~binding-form result#]
(swap! rec-rest# (constantly (delay (lazy-cat ~@rec-exprs))))
result#))
@@ -137,9 +138,10 @@
"Lazily break s into chunks of length n (or less, for the
final chunk)."
[n s]
- (when (seq s)
- (lazy-cons (take n s)
- (partition-all n (drop n s)))))
+ (lazy-seq
+ (when (seq s)
+ (cons (take n s)
+ (partition-all n (drop n s))))))
(defn shuffle
"Return a random permutation of coll"