Permalink
Browse files

Lists.

  • Loading branch information...
1 parent ac7f73e commit db4b18b84463ed3f5bfac9b13334f7a995de5752 @benhoskings committed Apr 30, 2012
Showing with 10 additions and 10 deletions.
  1. +10 −10 src/koans/lists.clj
View
20 src/koans/lists.clj
@@ -1,34 +1,34 @@
(meditations
"Lists can be expressed by function or a quoted form"
- (= '(__ __ __ __ __) (list 1 2 3 4 5))
+ (= '(1 2 3 4 5) (list 1 2 3 4 5))
"They are Clojure seqs (sequences), so they allow access to the first"
- (= __ (first '(1 2 3 4 5)))
+ (= 1 (first '(1 2 3 4 5)))
"As well as the rest"
- (= __ (rest '(1 2 3 4 5)))
+ (= '(2 3 4 5) (rest '(1 2 3 4 5)))
"The rest when nothing is left is empty"
- (= __ (rest '(100)))
+ (= '() (rest '(100)))
"And construction by adding an element to the front is simple"
- (= __ (cons :a '(:b :c :d :e)))
+ (= '(:a :b :c :d :e) (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))
+ (= '(0 :a :b :c :d :e) (conj '(:a :b :c :d :e) 0))
"You can use a list like a stack to get the first element"
- (= __ (peek '(:a :b :c :d :e)))
+ (= :a (peek '(:a :b :c :d :e)))
"Or the others"
- (= __ (pop '(:a :b :c :d :e)))
+ (= '(:b :c :d :e) (pop '(:a :b :c :d :e)))
"But watch out if you try to pop nothing"
- (= __ (try
+ (= "No dice!" (try
(pop '())
(catch IllegalStateException e "No dice!")))
"The rest of nothing isn't so strict"
- (= __ (try
+ (= '() (try
(rest '())
(catch IllegalStateException e "No dice!"))))

0 comments on commit db4b18b

Please sign in to comment.