Special Operator QUOTE
quote
object => object
object - オブジェクト。評価はされません。
特殊オペレーターのquote
は、objectを返却します。
もし(クォートされたオブジェクトに含まれる) リテラルオブジェクトが破壊的に修正された結果は未定義です。
setq a 1) => 1
(quote (setq a 3)) => (SETQ A 3)
(=> 1
a => A
'a => (QUOTE A)
''a => (QUOTE (QUOTE A))
'''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
はそれらのオブジェクトの評価を抑制するので、 それらはプログラムではなくデータになります。