From 25b2f112471da0f3d7ea33a72e4f6b0683d6a4a0 Mon Sep 17 00:00:00 2001 From: Micah Martin and Colin Jones Date: Mon, 4 Mar 2013 16:58:58 -0600 Subject: [PATCH] Clarify empty lists & other list operations --- resources/koans.clj | 4 +++- src/koans/02_lists.clj | 21 +++++++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/resources/koans.clj b/resources/koans.clj index 710ea07..2c137d2 100644 --- a/resources/koans.clj +++ b/resources/koans.clj @@ -9,9 +9,11 @@ ["02_lists" {"__" [1 2 3 4 5 1 [2 3 4 5] + 3 + 0 () [:a :b :c :d :e] - [0 :a :b :c :d :e] + [:e :a :b :c :d] :a [:b :c :d :e] "No dice!" diff --git a/src/koans/02_lists.clj b/src/koans/02_lists.clj index 2d297d3..cf246f4 100644 --- a/src/koans/02_lists.clj +++ b/src/koans/02_lists.clj @@ -8,14 +8,20 @@ "As well as the rest" (= __ (rest '(1 2 3 4 5))) - "The rest when nothing is left is empty" + "Count your blessings" + (= __ (count '(dracula dooku chocula))) + + "Before they are gone" + (= __ (count '())) + + "The rest, when nothing is left, is empty" (= __ (rest '(100))) - "And construction by adding an element to the front is simple" + "Construction by adding an element to the front is easy" (= __ (cons :a '(:b :c :d :e))) - "Conjoining an element to a list can be done in the reverse order" - (= __ (conj '(:a :b :c :d :e) 0)) + "Conjoining an element to a list isn't hard either" + (= __ (conj '(:a :b :c :d) :e)) "You can use a list like a stack to get the first element" (= __ (peek '(:a :b :c :d :e))) @@ -26,9 +32,12 @@ "But watch out if you try to pop nothing" (= __ (try (pop '()) - (catch IllegalStateException e "No dice!"))) + (catch IllegalStateException e + "No dice!"))) "The rest of nothing isn't so strict" (= __ (try (rest '()) - (catch IllegalStateException e "No dice!")))) + (catch IllegalStateException e + "No dice!")))) +