Skip to content

Instantly share code, notes, and snippets.

Created May 5, 2011 15:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anonymous/957220 to your computer and use it in GitHub Desktop.
Save anonymous/957220 to your computer and use it in GitHub Desktop.
;; chrisvest's solution to http://4clojure.com/problem/73
(fn [m]
(let [transpose (partial apply map list)
star (fn [[[a b c] [d e f] [g h i]]] [[a e i] [c e g]])
permute (juxt identity transpose star)
fitness #(->> % (filter (fn [x] (apply = x))) first)]
(->> (permute m) (map fitness) (some first) #{:x :o})))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment