这个问题可能有一个令人尴尬的简单答案,但是有没有正确的方法在Common Lisp中格式化/绘制树?我已经尝试了几本书以及谷歌搜索,但问题似乎落在搜索术语的裂缝之间。
提前致谢!
答案 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。
答案 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文件,其中包含完整的无意义错误消息。不过,值得一提。