假设我想在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的metalogical功能的选项?
由于Prolog允许基于参数数目的谓词名重载,所以最好使用'Name/NArgs'而不是简单名称。 – 2010-11-19 15:04:17