Chapter 2: Clojure Koans¶
The Clojure Koans are a series of exercises designed to teach Clojure. Periodically through the track 2 curriculum we’ll be referencing them. For this document we’ll make sure we can get them downloaded, setup, and you can even start doing the first couple sets of problems.
More information can be found at the Clojure Koans website: http://www.clojurekoans.com
Getting started¶
First lets clone the koans repository:
git clone git://github.com/functional-koans/clojure-koans.git
Lets poke around the repo we just cloned:
cd clojure-koans
Inside here there should be a src directory containing the following:
└── src
└── koans
├── 01_equalities.clj
├── 02_lists.clj
├── 03_vectors.clj
├── 04_sets.clj
├── 05_maps.clj
├── 06_functions.clj
├── 07_conditionals.clj
├── 08_higher_order_functions.clj
├── 09_runtime_polymorphism.clj
├── 10_lazy_sequences.clj
├── 11_sequence_comprehensions.clj
├── 12_creating_functions.clj
├── 13_recursion.clj
├── 14_destructuring.clj
├── 15_refs.clj
├── 16_atoms.clj
├── 17_macros.clj
├── 18_datatypes.clj
├── 19_java_interop.clj
├── 20_partition.clj
└── 21_group_by.clj
From the clojure-koans
directory run:
lein koan run
This will start executing the koans. You should see something similar to the following:
Starting auto-runner...
Considering /home/brian/repos/clojure-koans/src/koans/01_equalities.clj...
Now meditate upon /home/brian/repos/clojure-koans/src/koans/01_equalities.clj:6
---------------------
Assertion failed!
We shall contemplate truth by testing reality, via equality
(= __ true)
Now open up the clojure-koans base repository directory in atom.
Open up the first set of koans 01_equalities.clj
. The objective of the koans is to
fix the assertion that is currently being displayed in your terminal by filling in
the __
. As you save the file it will check to see if your answer is correct and
move on to the next koan.
To solve the first one, lets change:
"We shall contemplate truth by testing reality, via equality"
(= __ true)
to:
"We shall contemplate truth by testing reality, via equality"
(= true true)
Save the file, we should now see the koan runner move on to the next problem. Try to get through the 1st set of koans before tomorrow:
01_equalities.clj