我正在使用SWI-Prolog。我的数据库中有事实清单:
a(r).
a(s).
a(t).
现在我希望Prolog为b(X)
所拥有的X
插入事实a(X)
,以便我可以以交互方式撤消某些事实b(s)
或b(t)
。如何才能做到这一点?
答案 0 :(得分:2)
快速回答是:
?- forall(a(X), assert(b(X)))
但是,请注意b/1
必须声明为动态谓词(即,可以在运行时声明/撤消其子句的谓词)。这是通过以下方式声明的:
:- dynamic(b/1).