|
ANSI Common Lisp 22 Printer 22.3 Formatted Output 22.3.9 FORMAT Miscellaneous Pseudo-Operations
22.3.9.3 Tilde Newline: Ignored Newline
Tilde immediately followed by a newline ignores the newline
and any following non-newline whitespace1 characters.
With a :,
the newline is ignored,
but any following whitespace1 is left in place.
With an @,
the newline is left in place,
but any following whitespace1 is ignored.
For example:
(defun type-clash-error (fn nargs argnum right-type wrong-type)
(format *error-output*
"~&~S requires its ~:[~:R~;~*~]~
argument to be of type ~S,~%but it was called ~
with an argument of type ~S.~%"
fn (eql nargs 1) argnum right-type wrong-type))
(type-clash-error 'aref nil 2 'integer 'vector) prints:
AREF requires its second argument to be of type INTEGER,
but it was called with an argument of type VECTOR.
NIL
(type-clash-error 'car 1 1 'list 'short-float) prints:
CAR requires its argument to be of type LIST,
but it was called with an argument of type SHORT-FLOAT.
NIL
Note that in this example newlines appear in the output only as specified
by the ~& and ~% directives; the
actual newline characters
in the control string are suppressed because each is preceded by a tilde.
|