Characters
Common Lisp characters are a distinct type of object from numbers. That’s as it should be—characters are not numbers, and languages that treat them as if they are tend to run into problems when character encodings change, say, from 8-bit ASCII to 21-bit Unicode.11 Because the Common Lisp standard didn’t mandate a particular representation for characters, today several Lisp implementations use Unicode as their “native” character encoding despite Unicode being only a gleam in a standards body’s eye at the time Common Lisp’s own standardization was being wrapped up.
The read syntax for characters objects is simple: #\
followed by the desired character. Thus, #\x
is the character x
. Any character can be used after the #\
, including otherwise special characters such as "
, (
, and whitespace. However, writing whitespace characters this way isn’t very (human) readable; an alternative syntax for certain characters is #\
followed by the character’s name. Exactly what names are supported depends on the character set and on the Lisp implementation, but all implementations support the names Space and Newline. Thus, you should write #\Space
instead of #\
, though the latter is technically legal. Other semistandard names (that implementations must use if the character set has the appropriate characters) are Tab, Page, Rubout, Linefeed, Return, and Backspace.