Recursively apply unifications to find the single best rule

This commit is contained in:
Paul deGrandis 2012-03-07 11:23:45 -05:00
parent 3bc419acb0
commit 2588080655

View file

@ -34,7 +34,12 @@
(check-form expr all-rules))
([expr rules]
(when (sequential? expr)
(some #(unify expr %) rules))))
(loop [expr expr
alt-map nil]
(if-let [new-alt-map (some #(unify expr %) rules)]
(recur (:alt new-alt-map)
new-alt-map)
alt-map)))))
(defn expr-seq [expr]
(tree-seq sequential?