Skip to content

Instantly share code, notes, and snippets.

@hadielmougy
Created August 31, 2016 22:28
Show Gist options
  • Save hadielmougy/c5100ea409581dedc5e41f2e8bc842a6 to your computer and use it in GitHub Desktop.
Save hadielmougy/c5100ea409581dedc5e41f2e8bc842a6 to your computer and use it in GitHub Desktop.
(defn node [g]
(set (flatten g)))
(defn adjList [g]
(into {} (vec ((fn [m] into {} (for [[k v]m] {k (node v)}))(group-by first g)))))
(defn connected? [g a b]
(loop [n (a g)
v #{}]
(let [diff (clojure.set/difference n v)]
(if (clojure.set/superset? v n) false
(if (contains? n b) true
(recur
(flatten (into #{} (vec (map #(replace {% (% g)} n) n))))
;;(into #{} (vec ((fn [m] into {}(for [x m](x g)))n)))
(set (concat n v))))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment