2009-04-29 5 views
10

私のキャリアで頻繁に出てくる問題は、何らかのデータ構造(たぶんs式)があり、それを人間が読める形式で妥当なインデント選択肢。カスタムのかわいいプリンタを書く方法

これをエレガントに行う方法について説明した書籍またはブログのエントリはありますか?私は特定のライブラリよりもアルゴリズムに興味があります。

答えて

13

S-Expsはツリー構造に相当します。ツリーをきれいに印刷することができれば、s-expをきれいに印刷できます。例えば

は、比較:

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

に:

89 
+- 9 
+- 456 

アルゴリズムは同じであるが、唯一の違いは、あなたが印刷したいデータを囲むのammountです。

This paper

This oneは、第2のリンクが使用できなくなったプログラミング言語

+0

ためのプリティプリンタを記載していないきれいな印刷の木のためのアルゴリズムを説明します。 – Jon