CLHS: Section 22.3.9.3

#

## 22.3.9.3 Tilde Newline: Ignored Newline

Tilde immediately followed by a newline ignores the newline and any following non-newline whitespace[1] characters. With a `:`, the newline is ignored, but any following whitespace[1] is left in place. With an `@`, the newline is left in place, but any following whitespace[1] 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.

Copyright 1996-2005, LispWorks Ltd. All rights reserved.