我想知道是否有人设法使用了“列表”。JPL 中的命令来检查 Prolog 知识库的内容?JPL 要求您构建查询,并将根据您在查询中设置的变量返回解决方案。例如(Java):
Query q = new Query("holdsAt((X,Y) = true, 3)");
while ( q.hasMoreSolutions() ){
Hashtable s = q.nextSolution();
System.out.println(s.get("X")+", "+s.get("Y"));
}
我看不出这对于listing/0 或什至需要实例化输入的listing/1 是如何工作的。目前我正在玩形式的代码
predicate_property(L,interpreted),
\+ predicate_property(L, built_in),
\+ predicate_property(L,imported_from(_)),
current_predicate( X, L), current_predicate(X/Z).
它返回知识库中存在的函数:
myFunction:-
myGoal1,
myGoal2.
答案:
L = myFunction(_G403,_G404),
X = myFunction,
Z = 2
但这还不够,因为没有返回任何目标。我想我需要的是一个函数(如果不能使用 JPL 调用列表函数),它作为变量返回谓词头以及必须满足的相关目标列表。不幸的是,我不熟悉列表功能的内部结构,所以我不确定如何去做。
提前致谢