If *print-array* is true and *print-readably* is false, any
array other than a vector is printed using #nA format. Let n be the rank of the array. Then # is printed, then n as a decimal integer, then A, then n open parentheses. Next the elements are scanned in row-major order, using write on each element, and separating elements from each other with whitespace_1. The array's dimensions are numbered 0 to n-1 from left to right, and are enumerated with the rightmost index changing fastest. Every time the index for dimension j is incremented, the following actions are taken:
This causes the contents to be printed in a format suitable for :initial-contents to make-array. The lists effectively printed by this procedure are subject to truncation by *print-level* and *print-length*.
If the array is of a specialized type, containing bits or characters, then the innermost lists generated by the algorithm given above can instead be printed using bit-vector or string syntax, provided that these innermost lists would not be subject to truncation by *print-length*.
If both *print-array* and *print-readably* are false,
then the array is printed in a format (using #<) that is concise but not readable.
If *print-readably* is true, the array prints in an implementation-defined manner; see the variable *print-readably*.
In particular, this may be important for arrays having some dimension 0.
For information on how the Lisp reader parses these "other arrays," see section Sharpsign A.
Go to the first, previous, next, last section, table of contents.