% Variable *PRINT-PRETTY*
Variable *PRINT-PRETTY*
generalized-boolean
実装依存
Lispプリンターがプリティプリンターを呼び出すかどうかを制御します。
もし値がfalseのとき、プリティプリンターは使用されず、 式を出力する際には最小の空白文字が出力されます。
もし値がtrueのとき、プリティプリンターは使用され、 Lispプリンターは式がより読みやすいように生成できるような適切な場所では、 余分な空白文字が挿入されるように努力します。
*print-pretty*
は、
*print-escape*
の値がfalseの場合でも効果を発揮します。
(setq *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
;; 最初の2つの式(1,2番目)の印刷は、次に2つの式(3,4番目)とは
;; エスケープ文字が印刷されているかどうかのみ違っています。
;; 4つの場合全てで、余分な空白文字はプリティプリンターによって挿入されます。
(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" #'c #'d))))
>> #'(LAMBDA ()
>> (LIST "a" #'C #'D))
>> #'(LAMBDA ()
>> (LIST "a" #'C #'D))
>> #'(LAMBDA ()
>> (LIST a b 'C #'D))
>> #'(LAMBDA ()
>> (LIST a b 'C #'D))
=> NIL
なし。
なし。