Next: Input Streams, Up: Read and Print
Reading a Lisp object means parsing a Lisp expression in textual
form and producing a corresponding Lisp object. This is how Lisp
programs get into Lisp from files of Lisp code. We call the text the
read syntax of the object. For example, the text `(a . 5)'
is the read syntax for a cons cell whose car is a and whose
cdr is the number 5.
Printing a Lisp object means producing text that represents that object—converting the object to its printed representation (see Printed Representation). Printing the cons cell described above produces the text `(a . 5)'.
Reading and printing are more or less inverse operations: printing the
object that results from reading a given piece of text often produces
the same text, and reading the text that results from printing an object
usually produces a similar-looking object. For example, printing the
symbol foo produces the text `foo', and reading that text
returns the symbol foo. Printing a list whose elements are
a and b produces the text `(a b)', and reading that
text produces a list (but not the same list) with elements a
and b.
However, these two operations are not precisely inverse to each other. There are three kinds of exceptions:
