Special-Operator QUOTE

UP


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はそれらのオブジェクトの評価を抑制するので、 それらはプログラムではなくデータになります。


TOP, Github