次: Eval, 前: Forms, 上: Evaluation
スペシャルフォームquote
は、単一の引数を
評価せずに書かれたとおりに返します。
これは、自己評価型オブジェクトではない
定数シンボルや定数リストをプログラム内に書く手段です。
(数、文字列、ベクトルなどの自己評価型オブジェクトをクォートする必要はない。)
quote
はプログラム内で頻繁に使うので、
Lispには便利な入力構文が用意してあります。
アポストロフ文字(`'')に続けた(入力構文で書いた)Lispオブジェクトは、
先頭要素がquote
であり2番目の要素がそのオブジェクトである
リストに展開されます。
したがって、入力構文'x
は、(quote x)
の省略形です。
quote
を使った式の例をいくつかあげておきます。
(quote (+ 1 2)) => (+ 1 2) (quote foo) => foo 'foo => foo ''foo => (quote foo) '(quote foo) => (quote foo) ['foo] => [(quote foo)]
他のクォートの書き方には、function
(see Anonymous Functions)が
あります。
これは、Lispで書いた無名ラムダ式をコンパイルするようにします。
また、``'(see Backquote)は、
リストの一部分をクォートし、他の部分は計算結果で置き換えるために使います。