diff --git a/.gitignore b/.gitignore index 06323cc..cbbcfd7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +*~ bin classes lib @@ -8,4 +9,3 @@ target .lein-deps-sum .lein-plugins .lein-repl-history - diff --git a/src/koans/01_equalities.clj b/src/koans/01_equalities.clj index ed10b7b..8f76176 100644 --- a/src/koans/01_equalities.clj +++ b/src/koans/01_equalities.clj @@ -24,13 +24,13 @@ (= __ (not (= 1 nil))) "Strings, and keywords, and symbols: oh my!" - (= __ (= "foo" :foo 'foo)) + (= __ (= "hello" :hello 'hello)) "Make a keyword with your keyboard" - (= :foo (keyword __)) + (= :hello (keyword __)) "Symbolism is all around us" - (= 'foo (symbol __)) + (= 'hello (symbol __)) "When things cannot be equal, they must be different" (not= :fill-in-the-blank __)) diff --git a/src/koans/04_sets.clj b/src/koans/04_sets.clj index 0b5d14e..d6b4063 100644 --- a/src/koans/04_sets.clj +++ b/src/koans/04_sets.clj @@ -1,5 +1,6 @@ (ns koans.04-sets - (:require [koan-engine.core :refer :all])) + (:require [koan-engine.core :refer :all] + [clojure.set :as set])) (meditations "You can create a set by converting another collection" @@ -12,10 +13,10 @@ (= __ (set '(1 1 2 2 3 3 4 4 5 5))) "You can ask clojure for the union of two sets" - (= __ (clojure.set/union #{1 2 3 4} #{2 3 5})) + (= __ (set/union #{1 2 3 4} #{2 3 5})) "And also the intersection" - (= __ (clojure.set/intersection #{1 2 3 4} #{2 3 5})) + (= __ (set/intersection #{1 2 3 4} #{2 3 5})) "But don't forget about the difference" - (= __ (clojure.set/difference #{1 2 3 4 5} #{2 3 5}))) + (= __ (set/difference #{1 2 3 4 5} #{2 3 5}))) diff --git a/src/koans/07_conditionals.clj b/src/koans/07_conditionals.clj index b33efc6..764cd09 100644 --- a/src/koans/07_conditionals.clj +++ b/src/koans/07_conditionals.clj @@ -1,14 +1,12 @@ (ns koans.07-conditionals (:require [koan-engine.core :refer :all])) -(defn explain-defcon-level [exercise-term] +(defn explain-exercise-velocity [exercise-term] (case exercise-term - :fade-out :you-and-what-army - :double-take :call-me-when-its-important - :round-house :o-rly - :fast-pace :thats-pretty-bad - :cocked-pistol :sirens - :say-what?)) + :bicycling "pretty fast" + :jogging "not super fast" + :walking "not fast at all" + "is that even exercise?")) (meditations "You will face many decisions" @@ -40,10 +38,10 @@ 'doom 'more-doom)) - "In case of emergency, sound the alarms" - (= :sirens - (explain-defcon-level __)) + "In case of emergency, go fast" + (= "pretty fast" + (explain-exercise-velocity __)) "But admit it when you don't know what to do" (= __ - (explain-defcon-level :yo-mama))) + (explain-exercise-velocity :watching-tv))) diff --git a/src/koans/10_lazy_sequences.clj b/src/koans/10_lazy_sequences.clj index 07c6858..ac8e6c4 100644 --- a/src/koans/10_lazy_sequences.clj +++ b/src/koans/10_lazy_sequences.clj @@ -24,5 +24,5 @@ (repeat 10 __)) "Iteration can be used for repetition" - (= (repeat 100 :foo) - (take 100 (iterate ___ :foo)))) + (= (repeat 100 :hello) + (take 100 (iterate ___ :hello)))) diff --git a/src/koans/14_destructuring.clj b/src/koans/14_destructuring.clj index 42e0940..de6a9ce 100644 --- a/src/koans/14_destructuring.clj +++ b/src/koans/14_destructuring.clj @@ -12,16 +12,16 @@ [:foo :bar])) "Whether in function definitions" - (= (str "First comes love, " - "then comes marriage, " - "then comes Clojure with the baby carriage") + (= (str "An Oxford comma list of apples, " + "oranges, " + "and pears.") ((fn [[a b c]] __) - ["love" "marriage" "Clojure"])) + ["apples" "oranges" "pears"])) "Or in let expressions" - (= "Rich Hickey aka The Clojurer aka Go Time aka Macro Killah" + (= "Rich Hickey aka The Clojurer aka Go Time aka Lambda Guru" (let [[first-name last-name & aliases] - (list "Rich" "Hickey" "The Clojurer" "Go Time" "Macro Killah")] + (list "Rich" "Hickey" "The Clojurer" "Go Time" "Lambda Guru")] __)) "You can regain the full argument if you like arguing" diff --git a/src/koans/21_group_by.clj b/src/koans/21_group_by.clj index 1e845d5..e7a0408 100644 --- a/src/koans/21_group_by.clj +++ b/src/koans/21_group_by.clj @@ -19,20 +19,20 @@ "You can also group by a primary key" (= __ (group-by :id [{:id 1 :name "Bob"} - {:id 2 :name "Mike"} + {:id 2 :name "Jennifer"} {:id 1 :last-name "Smith"} ])) "But be careful when you group by non-required key" (= {"Bob" [{:name "Bob" :id 1}] - "Mike" [{:name "Mike" :id 2}] + "Jennifer" [{:name "Jennifer" :id 2}] __ [{:last-name "Smith" :id 1}]} (group-by :name [{:id 1 :name "Bob"} - {:id 2 :name "Mike"} + {:id 2 :name "Jennifer"} {:id 1 :last-name "Smith"}])) "The true power of group-by comes with custom functions" (= __ (group-by #(if (:bad %) :naughty-list :nice-list) [{:name "Jimmy" :bad true} - {:name "Jack" :bad false} + {:name "Anna" :bad false} {:name "Joe" :bad true}])))