diff options
-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 |