Tree 用公共Lisp绘制树

Tree 用公共Lisp绘制树,tree,lisp,common-lisp,Tree,Lisp,Common Lisp,这个问题可能有一个令人尴尬的简单答案,但是否有一种正确的方法可以在CommonLisp中格式化/绘制树?我试过几本书,也用谷歌搜索过,但问题似乎出在搜索词之间 提前谢谢 如果您没有找到更好的解决方案,我倾向于发出一个.dot文件,然后将其提供给其中一个工具(如dot)。文件格式非常简单,这些工具可以生成各种格式,包括PNG、SVG、PostScript甚至图像映射(用于在网页上创建可单击的图形) 这种方法可能只适用于您希望这些图形供自己使用(例如:调试)或在服务器上生成它们的情况。在客户端应用程

这个问题可能有一个令人尴尬的简单答案,但是否有一种正确的方法可以在CommonLisp中格式化/绘制树?我试过几本书,也用谷歌搜索过,但问题似乎出在搜索词之间


提前谢谢

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

这种方法可能只适用于您希望这些图形供自己使用(例如:调试)或在服务器上生成它们的情况。在客户端应用程序中调用单独的工具可能存在可用性和/或许可问题


这实际上不是一个常见的lisp特定解决方案,但我在过去的一些语言中使用过这种方法。

如果您决定使用GraphViz,请查看您想要绘制什么样的树

将单元格结构绘制到终端。类似:

如果有CLIM或Lisp机器,可以调用CLIM函数或CLIM:FORMAT-GRAPH-FROM-root

如果使用LispWorks,则会出现一个错误

如果要绘制植物,请使用以下选项:


近年来,我在GP应用程序中使用了(一个生成点命令的Awk脚本),但目前它似乎不起作用。每次我给它输入有效的Lisp表达式时,它都会返回奇怪的点文件,其中充满了无意义的错误消息。尽管如此,还是值得一提。

您好,非常感谢您的回复。我希望直接打印到控制台,但是你的建议对于大树来说听起来更灵活。再次感谢您抽出时间!太棒了,SDRAW正是我想要的:一种表示嵌套单元格的干净方法。再次感谢。多棒的回答。哇!你回答的不仅仅是OP,而是整个google搜索流。另一个选项是(ql:quickload:draw cons tree),我有机会回来查看,它似乎仍在工作,但要注意函数名和函数节点的数量,这在Awk中可能很棘手。