【问题标题】:Printing a list in outline form以大纲形式打印列表
【发布时间】:2017-03-19 16:22:03
【问题描述】:

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

A
 B
 C
  D
  E
   F
 G

【问题讨论】:

  • 你关心括号吗?在窄列内使用 PPRINT 通常会做一些非常接近此的事情。
  • 是的,将 print-right-margin 设置为 2 有效。谢谢。但是,知道如何使用格式来做到这一点仍然很有趣——主要是如何在控制字符串中包含可变数量的制表符,如 ~nI(缩进 n 个块)。

标签: format common-lisp pretty-print


【解决方案1】:

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

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

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

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

这将在第 10 列打印“A”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    相关资源
    最近更新 更多