;; fronx's solution to Transitive Closure ;; https://4clojure.com/problem/84 (fn [rel] (let [trans (set (for [[a b] rel [c d] rel] [a (if (= b c) d b)])) done (= trans rel)] (if done trans (recur trans))))