User Tools


Variable *PRINT-PRETTY*

Value Type

Initial Value

Description

Controls whether the Lisp printer calls the pretty printer.

If it is false, the pretty printer is not used and a minimum of whitespace is output when printing an expression.

If it is true, the pretty printer is used, and the Lisp printer will endeavor to insert extra whitespace where appropriate to make expressions more readable.

*print-pretty* has an effect even when the value of *print-escape* is false.

Examples

(setf *print-pretty* 'nil)

NIL

(progn (write '(let ((a 1) (b 2) (c 3)) (+ a b c))) nil)

(LET ((A 1) (B 2) (C 3)) (+ A B C))

NIL

(let ((*print-pretty* t)) (progn (write '(let ((a 1) (b 2) (c 3)) (+ a b c))) nil))

(LET ((A 1) (B 2) (C 3)) (+ A B C))

NIL

Note that the first two expressions printed by this next example differ from the second two only in whether escape characters are printed. In all four cases, extra whitespace is inserted by the pretty printer.

(flet ((test (x) (let ((*print-pretty* t)) (print x) (format t "~%~S " x) (terpri) (princ x) (princ " ") (format t "~%~A " x)))) (test '#'(lambda () (list "a" #\b 'c #'d))))

#'(LAMBDA () (LIST "a" #\b 'C #'D)) #'(LAMBDA () (LIST "a" #\b 'C #'D)) #'(LAMBDA () (LIST a b 'C #'D)) #'(LAMBDA () (LIST a b 'C #'D))

NIL

Affected By

None.

See Also

Notes

None.

\issue{PRINTER-WHITESPACE:JUST-ONE-SPACE} \issue{FORMAT-PRETTY-PRINT:YES}