(defn == "A goal that attempts to unify terms u and v." [u v] (fn [a] (let [has-cs? (pos? (count (:cs a)))] (let [ap (unify (if has-cs? (assoc a :vs []) a) u v) vs (if has-cs? (:vs ap)) changed? (pos? (count vs))] (if changed? ((run-constraints* vs (:cs ap) ::subst) (assoc ap :vs nil)) ap)))))
Comments top
No comments for ==. Log in to add a comment.