?- assert(p(a)),assert(p(b)),setof(X,p(X),R).
X = H142
R = [a, b]
yes
这个查询的效果是什么,为什么会返回这个特定的结果?
答案 0 :(得分:2)
yes
结果的原因是R,即仅由a和b组成的集合实际上是满足p(x)谓词的所有X的集合。
如果您要向R添加元素或从中删除a或b,结果将为no
。
p(a)和p(b)为真,因为断言谓词将这些子句添加到数据库中。
同样,如果您要添加另一个子句R = [a, b]
,请保留assert(p(c))
,结果将为no
(因为R将缺少c以使全部< / em> X,它满足p(X))。