如何编写一个自定义的漂亮打印机

发布于 2024-07-18 09:16:05 字数 124 浏览 6 评论 0原文

在我的职业生涯中经常出现的一个问题是我有某种数据结构(可能是 s 表达式),并且我想以人类可读的形式打印它,并提供合理的缩进选择。

是否有书籍或博客文章描述了如何优雅地做到这一点? 我对算法比对特定库更感兴趣。

A problem that has frequently come up in my career is I have some kind of data structure (perhaps an s-expression) and I want to print it in a human readable form complete with reasonable indentation choices.

Is there a book or blog entry that describes how to do this elegantly? I am interested in the algorithm more than a specific library.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

难忘№最初的完美 2024-07-25 09:16:05

S-Exp 相当于树结构,如果你可以漂亮地打印一棵树,那么你就可以漂亮地打印一个 s-exp。

例如,比较:

(tree
    (value 89)
    (tree
        (value 9)
        nil
        nil)
    (tree
        (value 456)
        nil
        nil))

与:

89
 +- 9
 +- 456

算法是相同的,唯一的区别是要打印的周围数据的数量。

本文描述了一种漂亮打印树的算法

< a href="ftp://reports.stanford.edu/pub/cstr/reports/cs/tr/79/770/CS-TR-79-770.pdf" rel="noreferrer">这个描述了一个用于编程语言的漂亮打印机

S-Exps are equivalent to tree structures, if you can pretty-print a tree you can pretty-print an s-exp.

For instance, compare:

(tree
    (value 89)
    (tree
        (value 9)
        nil
        nil)
    (tree
        (value 456)
        nil
        nil))

to:

89
 +- 9
 +- 456

The algorithm is identical, the only difference is the ammount of surrounding data you want to print out.

This paper describes an algorithm for pretty-printing trees

This one describes a pretty-printer for programming languages

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文