diff options
author | Rich Hickey <richhickey@gmail.com> | 2009-02-05 18:54:17 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2009-02-05 18:54:17 +0000 |
commit | ec0f8f3a1c2009175966819690dd34b53aeefae0 (patch) | |
tree | 14a8d169134cbe6356d01219d817ef88202baae0 | |
parent | 443ebe584bd0b48b601f3991e392b2d1d29a26fc (diff) |
[lazy] removed loop from distinct
-rw-r--r-- | src/clj/clojure/core.clj | 5 |
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 |