Create quote koan
Covers - quote - syntax-quote - unquote
This commit is contained in:
parent
4fe86ecc74
commit
bfeaa7cf07
@ -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
src/koans/24_quote.clj
Normal file
26
src/koans/24_quote.clj
Normal file
@ -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))
|
||||
)
|
Loading…
Reference in New Issue
Block a user