You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
clojure-koans/src/path_to_enlightenment.clj

36 lines
784 B
Clojure

(ns path-to-enlightenment
(:use [clojure.test])
(:require [clojure.set]))
(def __ nil)
(def ___ (fn [& args] nil))
(defmacro meditations [& forms]
(let [pairs (partition 2 forms)]
`(do
~@(map
(fn [[doc# code#]]
`(when-not (is ~code# ~doc#)
(System/exit 0)))
pairs))))
(def ordered-koans
["equalities"
"lists"
"vectors"
"sets"
"maps"
"functions"
"conditionals"
"higher_order_functions"
"runtime_polymorphism"
"sequence_comprehensions"
"partial_functions"
"recursion"
"destructuring"
"refs"])
(defn run []
(apply load (doall (map (partial str "koans/") ordered-koans)))
(println "You have achieved clojure enlightenment. Namaste."))