在Common Lisp中绘制树木

时间:2009-05-20 23:09:56

标签: tree lisp common-lisp

这个问题可能有一个令人尴尬的简单答案,但是有没有正确的方法在Common Lisp中格式化/绘制树?我已经尝试了几本书以及谷歌搜索,但问题似乎落在搜索术语的裂缝之间。

提前致谢!

4 个答案:

答案 0 :(得分:27)

你想画什么样的树?

SDRAW将缺陷单元结构绘制到终端。相似:Draw Cons Tree

如果你有McCLIM,CLIM或Lisp机器,你可以调用CLIM函数CLIM:FORMAT-GRAPH-FROM-ROOT或CLIM:FORMAT-GRAPH-FROM-ROOTS。

如果您使用LispWorks,则有graph pane

如果你想画植物,可以使用这个:L-Lisp

plant drawing

答案 1 :(得分:5)

如果您决定使用GraphViz,请查看http://common-lisp.net/project/cl-graphviz

答案 2 :(得分:4)

如果找不到更好的解决方案,我会倾向于发出.dot文件,然后将其提供给其中一个Graphviz工具(如dot)。文件格式非常简单,工具可以生成各种格式,包括PNG,SVG,PostScript甚至图像映射(用于在网页上创建可点击的图形)。

如果您希望这些图形供您自己使用(例如:调试)或者您在服务器上生成它们,则此方法可能仅适用于您。在客户端应用程序中调用单独的工具可能会出现可用性和/或许可问题。

这不是一个常见的特定于lisp的解决方案,但我过去曾使用过几种语言的这种方法。

答案 3 :(得分:1)

近年来我在GP应用程序中使用了lisp2dot(一个生成Dot命令的Awk脚本),但目前似乎没有用。每当我用有效的Lisp表达式提供它时,它返回奇怪的Dot文件,其中包含完整的无意义错误消息。不过,值得一提。