Prologプログラムのルール依存グラフをPrologで作成したいとします。たとえば、次のプログラムPrologのルール依存グラフ
foo(X) :- bar(X, 0).
bar(A, B) :- quux(A), coox(B).
baz.
は(assert
を使用することによって)真であること、次のような結果になります。
depends(foo, [bar]).
depends(bar, [quux, coox]).
depends(baz, []).
または私は簡単にグラフを作成するために使用できることは、上記のようなもの。私が考えてきたアプローチは、入力ファイルの行を文字列として読み込み、単純な検索と置換を実行することですが、それは醜い非プロローグのようなハックのようです。 Prologのメタデータ機能を利用する他のオプションはありますか?
Prologは引数の数に基づいて述語名のオーバーロードを許可するので、単純名の代わりに 'Name/NArgs'項を使用する方がよいでしょう。 –