aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/datalog/database.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/clojure/contrib/datalog/database.clj')
-rw-r--r--src/clojure/contrib/datalog/database.clj7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/clojure/contrib/datalog/database.clj b/src/clojure/contrib/datalog/database.clj
index a24f093c..aba41df9 100644
--- a/src/clojure/contrib/datalog/database.clj
+++ b/src/clojure/contrib/datalog/database.clj
@@ -152,8 +152,11 @@
(into {} (for [ik (keys idxs)]
(let [im (idxs ik)
iv (tuple ik)
- os (get im iv #{})]
- [ik (assoc im iv (f os tuple))]))))
+ os (get im iv #{})
+ ns (f os tuple)]
+ [ik (if (empty? ns)
+ (dissoc im iv)
+ (assoc im iv (f os tuple)))]))))
(defn- add-to-indexes
"Adds the tuple to the appropriate keys in the index map"