SICPを読む(76) 二進木をGraphvizで表示
どうも二進木のリスト表示がわかりにくいので、Graphviz使うことに。
define (graph tree) (system (format "echo 'digraph G { ~a ~a }' | dot -Tpng | display" (entry tree) ; 一個だけだと表示が出来ないのでとりあえず最初のを挿入しとく (letrec ((make-node (lambda (current next) (if (null? next) "" (format "~a->~a " (entry current) (entry next))))) (iter (lambda (tree) (if (null? tree) "" (string-append (make-node tree (left-branch tree)) (make-node tree (right-branch tree)) (iter (left-branch tree)) (iter (right-branch tree))))))) (iter tree))))) (graph (list->tree '(1 2 3 4 5 6))) ; (3 (1 () (2 () ())) (5 (4 () ()) (6 () ())))
適当っす。先読みはムジィ。
えいやぁ〜。
スゲー見やすい。
もう一枚。
可視化って素晴らしい。