2010-07-12 23:27:35 +00:00
|
|
|
(ns path-to-enlightenment
|
2010-10-29 15:07:11 +00:00
|
|
|
(:use [clojure.test])
|
|
|
|
(:require [clojure.set]))
|
2010-01-24 03:28:43 +00:00
|
|
|
|
2010-02-06 16:49:53 +00:00
|
|
|
(def __ nil)
|
2010-07-26 23:15:26 +00:00
|
|
|
(def ___ (fn [& args] nil))
|
2010-01-24 03:28:43 +00:00
|
|
|
|
2010-02-06 16:49:53 +00:00
|
|
|
(defmacro meditations [& forms]
|
|
|
|
(let [pairs (partition 2 forms)]
|
|
|
|
`(do
|
2010-05-06 22:38:34 +00:00
|
|
|
~@(map
|
|
|
|
(fn [[doc# code#]]
|
|
|
|
`(when-not (is ~code# ~doc#)
|
|
|
|
(System/exit 0)))
|
|
|
|
pairs))))
|
2010-02-05 18:57:38 +00:00
|
|
|
|
2010-07-12 23:19:54 +00:00
|
|
|
(def ordered-koans
|
|
|
|
["equalities"
|
2010-07-12 23:11:15 +00:00
|
|
|
"lists"
|
|
|
|
"vectors"
|
|
|
|
"sets"
|
|
|
|
"maps"
|
|
|
|
"functions"
|
|
|
|
"conditionals"
|
|
|
|
"higher_order_functions"
|
|
|
|
"runtime_polymorphism"
|
|
|
|
"sequence_comprehensions"
|
2010-07-12 23:19:54 +00:00
|
|
|
"partial_functions"])
|
2010-07-11 21:04:37 +00:00
|
|
|
|
2010-07-12 23:19:54 +00:00
|
|
|
(defn run []
|
2010-07-13 14:41:25 +00:00
|
|
|
(apply load (doall (map (partial str "koans/") ordered-koans)))
|
2010-07-12 23:19:54 +00:00
|
|
|
(println "You have achieved clojure enlightenment. Namaste."))
|