Given a rules-set, return a map of rules keyed by their predicates.
Each value will be a set of rules.
(defn predicate-map
"Given a rules-set, return a map of rules keyed by their predicates.
Each value will be a set of rules."
[rs]
(let [add-rule (fn [m r]
(let [pred (-> r :head literal-predicate)
os (get m pred #{})]
(assoc m pred (conj os r))))]
(reduce add-rule {} rs)))
Comments top
No comments for predicate-map. Log in to add a comment.