Multiple Possible Textual Representations (ANSI and GNU Common Lisp Document)

Next: Printer Escaping, Previous: Overview of The Lisp Printer, Up: Overview of The Lisp Printer

#### 22.1.1.1 Multiple Possible Textual Representations

Most objects have more than one possible textual representation. For example, the positive integer with a magnitude of twenty-seven can be textually expressed in any of these ways:

     27    27.    #o33    #x1B    #b11011    #.(* 3 3 3)    81/3

A list containing the two symbols `A` and `B` can also be textually expressed in a variety of ways:

     (A B)    (a b)    (  a  b )    (\A |B|)
    (|\A|
      B
    )

In general,

from the point of view of the Lisp reader,

wherever whitespace is permissible in a textual representation, any number of spaces and newlines can appear in standard syntax.

When a function such as print produces a printed representation, it must choose from among many possible textual representations. In most cases, it chooses a program readable representation, but in certain cases it might use a more compact notation that is not program-readable.

A number of option variables, called printer control variables , are provided to permit control of individual aspects of the printed representation of objects. Figure 22–1 shows the standardized printer control variables; there might also be implementation-defined printer control variables.

      *print-array*   *print-gensym*       *print-pprint-dispatch*
      *print-base*    *print-length*       *print-pretty*
      *print-case*    *print-level*        *print-radix*
      *print-circle*  *print-lines*        *print-readably*
      *print-escape*  *print-miser-width*  *print-right-margin*

           Figure 22–1: Standardized Printer Control Variables

In addition to the printer control variables, the following additional defined names relate to or affect the behavior of the Lisp printer:

      *package*                    *read-eval*  readtable-case
      *read-default-float-format*  *readtable*

       Figure 22–2: Additional Influences on the Lisp printer.

Next: Printer Escaping, Previous: Overview of The Lisp Printer, Up: Overview of The Lisp Printer