commit 808987c2639d2b43f18878832eef48a2775a83b7 Author: Aaron Brooks AuthorDate: Sat Sep 1 20:52:36 2012 -0400 Commit: Aaron Brooks CommitDate: Sat Sep 1 21:01:05 2012 -0400 retractions: Fix bug converting 'set from PersistentHashSet to LazySeq. This issue does not affect external correctness but will adversely affect performance in the presence of duplicated facts. diff --git a/src/main/clojure/clojure/core/logic.clj b/src/main/clojure/clojure/core/logic.clj index a0ec68f..8eadf0e 100644 --- a/src/main/clojure/clojure/core/logic.clj +++ b/src/main/clojure/clojure/core/logic.clj @@ -2769,7 +2769,7 @@ (let [rel-ns (:ns (meta rel)) rel-set (var-get (ns-resolve rel-ns (set-sym (.name rel) arity))) tuples (map vec tuples)] - (swap! rel-set (fn [s] (remove #(some #{%} tuples) s))) + (swap! rel-set (fn [s] (reduce disj s tuples))) (let [indexes (indexes-for rel arity)] (doseq [[o i] indexes] (let [index (var-get (ns-resolve rel-ns (index-sym (.name rel) arity o)))]