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


4.1.2 Literal expressions

syntax: (quote ⟨datum⟩) syntax: ’⟨datum⟩ syntax: ⟨constant⟩

(quote ⟨datum⟩) evaluates to ⟨datum⟩. ⟨Datum⟩ can be any external representation of a Scheme object (See External representations (basic)). 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⟩) can 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, vector constants, bytevector constants, and boolean constants evaluate to themselves; they need not be quoted.

'145932     ⇒ 145932
145932      ⇒ 145932
'"abc"      ⇒ "abc"
"abc"       ⇒ "abc"
'#\a        ⇒ #\a
#\a         ⇒ #\a
'#(a 10)    ⇒ #(a 10)
#(a 10)     ⇒ #(a 10)
'#u8(64 65) ⇒ #u8(64 65)
#u8(64 65)  ⇒ #u8(64 65)
'#t         ⇒ #t
#t          ⇒ #t

As noted in Storage model, it is an error to attempt to alter a constant (i.e. the value of a literal expression) using a mutation procedure like set-car! or string-set!.