【发布时间】:2010-10-27 19:15:22
【问题描述】:
这个问题可能有一个令人尴尬的简单答案,但是在 Common Lisp 中是否有正确的方法来格式化/绘制树?我已经尝试了几本书以及谷歌搜索,但问题似乎落在搜索词的裂缝之间。
提前致谢!
【问题讨论】:
标签: tree lisp common-lisp
这个问题可能有一个令人尴尬的简单答案,但是在 Common Lisp 中是否有正确的方法来格式化/绘制树?我已经尝试了几本书以及谷歌搜索,但问题似乎落在搜索词的裂缝之间。
提前致谢!
【问题讨论】:
标签: tree lisp common-lisp
你想画什么样的树?
SDRAW 将 cons 单元结构绘制到终端。类似:Draw Cons Tree。
如果您有McCLIM、CLIM 或 Lisp 机器,则可以调用 CLIM 函数 CLIM:FORMAT-GRAPH-FROM-ROOT 或 CLIM:FORMAT-GRAPH-FROM-ROOTS。
如果你使用 LispWorks,有一个graph pane。
如果你想画植物,请使用这个:L-Lisp。
【讨论】:
如果您决定使用 GraphViz,请查看http://common-lisp.net/project/cl-graphviz
【讨论】:
如果您找不到更好的解决方案,我倾向于发出一个 .dot 文件,然后将其提供给 Graphviz 工具之一(如 dot)。文件格式非常简单,工具可以生成多种格式,包括 PNG、SVG、PostScript 甚至图像映射(用于在网页上创建可点击的图形)。
如果您希望这些图表供您自己使用(例如:调试)或者您在服务器上生成它们,这种方法可能只适用于您。在客户端应用程序中调用单独的工具可能存在可用性和/或许可问题。
这实际上并不是一个特定于 common-lisp 的解决方案,但我过去曾在几种语言中使用过这种方法。
【讨论】: