【发布时间】:2009-04-29 13:20:35
【问题描述】:
在我的职业生涯中经常遇到的一个问题是我有某种数据结构(可能是 s 表达式),我想以人类可读的形式打印它,并带有合理的缩进选择。
是否有书籍或博客文章描述了如何优雅地做到这一点?我对算法的兴趣超过对特定库的兴趣。
【问题讨论】:
在我的职业生涯中经常遇到的一个问题是我有某种数据结构(可能是 s 表达式),我想以人类可读的形式打印它,并带有合理的缩进选择。
是否有书籍或博客文章描述了如何优雅地做到这一点?我对算法的兴趣超过对特定库的兴趣。
【问题讨论】:
S-Exps 等价于树结构,如果你可以漂亮地打印一棵树,你就可以漂亮地打印一个 s-exp。
例如,比较:
(tree
(value 89)
(tree
(value 9)
nil
nil)
(tree
(value 456)
nil
nil))
到:
89
+- 9
+- 456
算法是相同的,唯一的区别是你要打印的周围数据的数量。
This paper 描述了一种用于漂亮打印树的算法
This one 描述了一个用于编程语言的漂亮打印机
【讨论】: