アーギュメントを変更せずに返す(非常に)良く似た関数が 3 つ存在します。それらは "アーギュメントを評価するか否か" という点で異なっています。またバイトコンパイ ラは function を特別に扱います。 function に関してはセクション 10.3 [関数]、 ページ 89 を参照して下さい。
Function: identity object
この関数は、 object を変更せずに返します。 quote とは異なり、アーギュメン トを評価します。
Special Form: quote object
この特殊フォームは、評価せずに object を返します。これは (通常)評価されて しまうシンボルやリストをプログラム中に持つために用いられます。
quote はプログラム中で頻繁に用いられるため、タイプする文字の数を減らすた め、特別な read シンタックスを持ちます。' の後にフォーム(空白も可)を続けた ものは quote されたフォームに展開されます。このため Lisp に関する限り 'foo は (quote foo) と同じものになりますが、読み込まれた後は (quote foo) として ストアされます。
(quote (+ 1 2)) > (+ 1 2) (quote foo) > foo 'foo > foo (quote (quote foo)) > (quote foo) "foo > (quote foo)
['foo] > [(quote foo)] '[foo] > [foo] "'foo" > "'foo" '(\'foo) > (\'foo)