- (quote <datum>)syntax
- '<datum>syntax
- <constant>syntax
(quote <datum>) evaluates to <datum>. <Datum> may be any external representation of a Scheme object. This notation is used to include literal constants in Scheme code.
(quote a) ===> a (quote #(a b c)) ===> #(a b c) (quote (+ 1 2)) ===> (+ 1 2)
(quote <datum>) may be abbreviated as '<datum>. The two notations are equivalent in all respects.
'a ===> a '#(a b c) ===> #(a b c) '() ===> () '(+ 1 2) ===> (+ 1 2) '(quote a) ===> (quote a) ''a ===> (quote a)
Numerical constants, string constants, character constants, and boolean constants evaluate "to themselves"; they need not be quoted.
'"abc" ===> "abc" "abc" ===> "abc" '145932 ===> 145932 145932 ===> 145932 '#t ===> #t #t ===> #t
It is an error to alter a constant (i.e. the value of a literal expression) using a mutation procedure like set-car! or string-set!. In the current implementation of CHICKEN, identical constants don't share memory and it is possible to mutate them, but this may change in the future.