In the programming language Lisp, the reader or read
function is the parser which converts the textual form of Lisp objects to the corresponding internal object structure.
In the original Lisp, S-expressions consisted only of symbols, integers, and the list constructors ( xi... )
and (x . y)
. Later Lisps, culminating in Common Lisp, added literals for floating-point, complex, and rational numbers, strings, and constructors for vectors.
The reader is responsible for parsing list structure, interning symbols, converting numbers to internal form, and calling read macros.
Read table
[edit]The reader is controlled by the readtable
, which defines the meaning of each character.
Read macros
[edit]Unlike most programming languages, Lisp supports parse-time execution of programs, called "read macros" or "reader macros". These are used to extend the syntax either in universal or program-specific ways. For example, the quoted form (quote x)
operator can be abbreviated as 'x
. The '
operator can be defined as a read macro which reads the following list and wraps it with quote
. Similarly, the backquote operator (` ) can be defined as a read macro.
References
[edit]Bibliography
[edit]- John McCarthy et al., LISP 1.5 Programmer's Manual, MIT Press, 1962.
- David A. Moon, MACLISP Reference Manual, 1974.
- Guy Steele, Common LISP: The Language, Second Edition, 1990.