% Special-Operator QUOTE
Special Operator QUOTE
quote
object => object
object - オブジェクト。評価はされません。
特殊オペレーターのquote
は、objectを返却します。
もし(クォートされたオブジェクトに含まれる) リテラルオブジェクトが破壊的に修正された結果は未定義です。
(setq a 1) => 1
(quote (setq a 3)) => (SETQ A 3)
a => 1
'a => A
''a => (QUOTE A)
'''a => (QUOTE (QUOTE A))
(setq a 43) => 43
(list a (cons a 3)) => (43 (43 . 3))
(list (quote a) (quote (cons a 3))) => (A (CONS A 3))
1 => 1
'1 => 1
"foo" => "foo"
'"foo" => "foo"
(car '(a b)) => A
'(car '(a b)) => (CAR (QUOTE (A B)))
#(car '(a b)) => #(CAR (QUOTE (A B)))
'#(car '(a b)) => #(CAR (QUOTE (A B)))
なし。
なし。
3.1. 評価, 2.4.3. シングルクォート, 3.2.1. コンパイラーの用語
文章としての表記'object
は、(quote object)
と等価です。
3.2.1. コンパイラーの用語をご確認ください。
いくつかの自己評価型オブジェクトと呼ばれるものは、
quote
によるクォートを必要としません。
しかしシンボルとリストは、
プログラムの部分として表現するときには使われますし、
プログラムの中においてはquote
なしで
定数のデータとして利用することはできません。
quote
はそれらのオブジェクトの評価を抑制するので、
それらはプログラムではなくデータになります。