Every character has one or more constituent traits that define how the character is to be interpreted by the Lisp reader when the character is a constituent character. These constituent traits are alphabetic[2], digit, package marker, plus sign, minus sign, dot, decimal point, ratio marker, exponent marker, and invalid. Figure 2-8 shows the constituent traits of the standard characters and of certain semi-standard characters; no mechanism is provided for changing the constituent trait of a character. Any character with the alphadigit constituent trait in that figure is a digit if the current input base is greater than that character's digit value, otherwise the character is alphabetic[2]. Any character quoted by a single escape is treated as an alphabetic[2] constituent, regardless of its normal syntax.
Figure 2-8. Constituent Traits of Standard Characters and Semi-Standard Characters
constituent traits constituent traits
character character
----------
Backspace invalid { alphabetic[2]
Tab invalid* } alphabetic[2]
Newline invalid* + alphabetic[2], plus sign
Linefeed invalid* - alphabetic[2], minus sign
Page invalid* . alphabetic[2], dot, decimal point
Return invalid* / alphabetic[2], ratio marker
Space invalid* A, a alphadigit
! alphabetic[2] B, b alphadigit
" alphabetic[2]* C, c alphadigit
# alphabetic[2]* D, d alphadigit, double-float exponent marker
$ alphabetic[2] E, e alphadigit, float exponent marker
% alphabetic[2] F, f alphadigit, single-float exponent marker
& alphabetic[2] G, g alphadigit
' alphabetic[2]* H, h alphadigit
( alphabetic[2]* I, i alphadigit
) alphabetic[2]* J, j alphadigit
* alphabetic[2] K, k alphadigit
, alphabetic[2]* L, l alphadigit, long-float exponent marker
0-9 alphadigit M, m alphadigit
: package marker N, n alphadigit
; alphabetic[2]* O, o alphadigit
< alphabetic[2] P, p alphadigit
= alphabetic[2] Q, q alphadigit
> alphabetic[2] R, r alphadigit
? alphabetic[2] S, s alphadigit, short-float exponent marker
@ alphabetic[2] T, t alphadigit
[ alphabetic[2] U, u alphadigit
\ alphabetic[2]* V, v alphadigit
] alphabetic[2] W, w alphadigit
^ alphabetic[2] X, x alphadigit
_ alphabetic[2] Y, y alphadigit
` alphabetic[2]* Z, z alphadigit
| alphabetic[2]* Rubout invalid
~ alphabetic[2]
The interpretations in this table apply only to characters whose syntax type is constituent. Entries marked with an asterisk (*) are normally shadowed[2] because the indicated characters are of syntax type whitespace[2], macro character, single escape, or multiple escape; these constituent traits apply to them only if their syntax types are changed to constituent.