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.