以大纲形式打印列表

Printing a list in outline form

common-lisp pretty printer 是否可以轻松配置为以 "outline" 形式打印出任何深度嵌套的列表,或者这是格式的工作?例如,'(a (b c (d e (f)) g)) 应该看起来像下面这样,其中每个 cdr 元素从车上走下一层:

A
 B
 C
  D
  E
   F
 G

查看 ~nT 格式指令。这将在第 n 列打印下一个参数:

(format t "~30T~a" 'a)
                              A

如果列是可变的,则使用 ~vt 将第一个参数用作列值:

(format t "~VT~a" 10 'a)
          A

这将在第 10 列打印 'A'