with-standard-io-syntax (original) (raw)

ANSI Common Lisp 23 Reader 23.2 Dictionary of Reader

23.2.12 with-standard-io-syntax Macro

Syntax:

with-standard-io-syntax {form}* {result}*

Arguments and Values:

forms - an implicit progn.

results - the values returned by the forms.

Description:

Within the dynamic extent of the body of forms, all reader/printer control variables, including any implementation-defined ones not specified by this standard, are bound to values that produce standard read/print behavior. The values for the variables specified by this standard are listed in the next figure.

Values of standard control variables

Variable Value
*package* The cl-user package
*print-array* t
*print-base* 10
*print-case* :upcase
*print-circle* nil
*print-escape* t
*print-gensym* t
*print-length* nil
*print-level* nil
*print-lines* nil
*print-miser-width* nil
*print-pprint-dispatch* The standard pprint dispatch table
*print-pretty* nil
*print-radix* nil
*print-readably* t
*print-right-margin* nil
*read-base* 10
*read-default-float-format* single-float
*read-eval* t
*read-suppress* nil
*readtable* The standard readtable

Examples:

(with-open-file (file pathname :direction :output) (with-standard-io-syntax (print data file)))

;;; ... Later, in another Lisp:

(with-open-file (file pathname :direction :input) (with-standard-io-syntax (setq data (read file))))

Allegro CL Implementation Details:

See The standard readtable is read-only, affect on with-standard-io-syntax and modifying the readtable in init files and with -ein implementation.htmlfor a note on the binding of *readtable* in a with-standard-io-syntax call.