从另一个事实创建一些默认事实,以便能够收回某些实例

时间:2014-11-12 10:35:05

标签: prolog

我正在使用SWI-Prolog。我的数据库中有事实清单:

 a(r).
 a(s).
 a(t).

现在我希望Prolog为b(X)所拥有的X插入事实a(X),以便我可以以交互方式撤消某些事实b(s)b(t) 。如何才能做到这一点?

1 个答案:

答案 0 :(得分:2)

快速回答是:

?- forall(a(X), assert(b(X)))

但是,请注意b/1必须声明为动态谓词(即,可以在运行时声明/撤消其子句的谓词)。这是通过以下方式声明的:

:- dynamic(b/1).