Skip to content

Commit

Permalink
Create quote koan
Browse files Browse the repository at this point in the history
Covers
- quote
- syntax-quote
- unquote
  • Loading branch information
qc1iu authored and trptcolin committed May 12, 2016
1 parent 4fe86ec commit bfeaa7c
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
7 changes: 7 additions & 0 deletions resources/koans.clj
Expand Up @@ -253,4 +253,11 @@
:park "AT&T Park"
'Giants
"Giants"]}]
["24_quote" {"__"[(1 2 3 4 5)
(1 2 3 4 5)
'age
quote
'(+ 2 3)
1 2 3
1 5]}]
]
26 changes: 26 additions & 0 deletions src/koans/24_quote.clj
@@ -0,0 +1,26 @@
(ns koans.24-quote
(:require [koan-engine.core :refer :all]))


(meditations
"use quote to express a list"
(= (quote __) (list 1 2 3 4 5))

"Clojure provide a shotcut"
(= (quote __) '(1 2 3 4 5))

"The quote special operator prevents its argument from being evaluated at all"
(= __ (let [age 9] (quote age)))

"You can use a literal list as a data collection without having Clojure try to call a function"
(= (cons 1 (__ (2 3))) (list 1 2 3) (cons 1 [2 3]))

"Th quote affects all of its argument, not just the top level"
(= (list 1 __) '(1 (+ 2 3)))

"Syntax-quote has a few extra features that make it ideal for constructing collections to be used as code."
(= (list __ __ __) `(1 2 3) '(1 2 3))

"Unquote is used to demarcate specific forms as requiring evaluation by prefixing fhem with the symbol ~ within the body of a syntax-quote"
(= (list __ __) `(1 ~(+ 2 3)) '(1 5))
)

0 comments on commit bfeaa7c

Please sign in to comment.