この質問にはおそらく恥ずかしいほど単純な答えがありますが、Common Lispでツリーをフォーマット/描画する正しい方法はありますか?私は数冊の本を試したり、グーグルで調べたりしましたが、問題は検索用語の亀裂の間にあるようです。
前もって感謝します!
この質問にはおそらく恥ずかしいほど単純な答えがありますが、Common Lispでツリーをフォーマット/描画する正しい方法はありますか?私は数冊の本を試したり、グーグルで調べたりしましたが、問題は検索用語の亀裂の間にあるようです。
前もって感謝します!
どんな木を描きたいですか?
SDRAWは、コンス セル構造を端末に描画します。類似:コンス ツリーを描画します。
McCLIM、 CLIM 、または Lisp マシンを使用している場合は、CLIM 関数CLIM:FORMAT-GRAPH-FROM-ROOTまたは CLIM:FORMAT-GRAPH-FROM-ROOTS を呼び出すことができます。
LispWorks を使用している場合は、グラフ ペインがあります。
植物を描きたい場合は、L-Lispを使用してください。
GraphVizを使用する場合は、 http: //common-lisp.net/project/cl-graphvizを確認してください。
より良い解決策が見つからない場合は、.dot ファイルを出力し、それをGraphvizツール (dot など) の 1 つにフィードすることをお勧めします。ファイル形式は非常にシンプルで、ツールは PNG、SVG、PostScript、さらにはイメージ マップ (Web ページでクリック可能なグラフを作成するため) など、さまざまな形式を生成できます。
このアプローチは、これらのグラフを自分で使用する場合 (例: デバッグ)、またはサーバー上でグラフを生成する場合にのみ有効です。クライアント アプリで別のツールを呼び出すと、使いやすさやライセンスの問題が発生する可能性があります。
これは実際には common-lisp 固有のソリューションではありませんが、私は過去にいくつかの言語でこのアプローチを使用しました。
私は最近 GP アプリケーションで lisp2dot (Dot コマンドを生成するAwkスクリプト) を使用しましたが、現在は機能していないようです。有効な Lisp 式をフィードするたびに、意味のないエラー メッセージがいっぱい入った奇妙な Dot ファイルが返されます。それにもかかわらず、言及する価値があります。