summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2009-02-05 18:54:17 +0000
committerRich Hickey <richhickey@gmail.com>2009-02-05 18:54:17 +0000
commitec0f8f3a1c2009175966819690dd34b53aeefae0 (patch)
tree14a8d169134cbe6356d01219d817ef88202baae0
parent443ebe584bd0b48b601f3991e392b2d1d29a26fc (diff)
[lazy] removed loop from distinct
-rw-r--r--src/clj/clojure/core.clj5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index 1b25eabc..c0413c5d 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -2905,11 +2905,12 @@
[coll]
(let [step (fn step [xs seen]
(lazy-seq
- (loop [[f :as xs] xs seen seen]
+ ((fn [[f :as xs] seen]
(when (seq xs)
(if (seen f)
(recur (more xs) seen)
- (cons f (step (more xs) (conj seen f))))))))]
+ (cons f (step (more xs) (conj seen f))))))
+ xs seen)))]
(step coll #{})))
(defmacro if-let