clojure備忘録[clojureの基本的な特殊形式 その1(quote特殊形式)]
概要
quote特殊形式は、引数のS式を評価せずにそのままデータとして返却します。
表記
(quote form)
または
'form
1番目は、第2引数以降を指定しても無視されますので注意してください。
2番目の「'」(シングルクオート)は、単なるquoteの省略形です。
こちらの方が書きやすいので普通はこちらの表記がよく使用されます。
実例
もしquoteが「関数」ならば、引数の四則演算のS式が先に評価され、
評価値には「6」やら「24」が表示されますが、
replが返却してくるのは「(+ 1 2 3)」「(* 2 3 4)」という、
quoteの引数の評価前のS式そのものになっています。
user=> (quote (+ 1 2 3))
(+ 1 2 3)
user=> '(* 2 3 4)
(* 2 3 4)
user=>
quoteされるのがアトムだった場合、その評価結果はシンボルとして扱われます。
user=> (quote abc)
abc
user=> (type (quote abc))
clojure.lang.Symbol
user=> 'abc
abc
user=> (type 'abc)
clojure.lang.Symbol
user=>
第2引数以降は無視されます。
user=> (quote (+ 1 2 3) (- 10 4 2) (/ 12 4))
(+ 1 2 3)
user=>