Next: , Previous: , Up: Primitive expression types   [Contents][Index]


4.1.2 Literal expressions

syntax: quote <datum>
syntax: '<datum>
syntax: <constant>

(quote <datum>)’ evaluates to <datum>. <Datum> may be any external representation of a Scheme object (see section see External representations). 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

As noted in section Storage model, 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!’.