SWI Prolog数据库

时间:2013-11-25 10:14:16

标签: prolog

有没有办法可以查询SWI Prolog数据库来检查它是否包含元素?

我尝试使用“not”但似乎不适用于此版本的Prolog。

1 个答案:

答案 0 :(得分:2)

也许你正在寻找clause / 2。虚拟会话样本

1 ?- [user].
|: a(1).
|: a(2).
|: a(X) :- b(X).
|: b(3).
|: b(4).
% user://1 compiled 0.03 sec, 6 clauses
true.

2 ?- clause(a(X),Body).
X = 1,
Body = true ;
X = 2,
Body = true ;
Body = b(X).

3 ?- clause(b(X),Body).
X = 3,
Body = true ;
X = 4,
Body = true.

4 ?- clause(c(X),Body).
false.

你可以看到c / 1没有被定义......

无论如何,SWi-Prolog数据库是一个复杂的野兽,它提供much more对其内容的控制。