2
事实在序言中,如果我断言某些事实,例如:保存断言在序言
assert(boy(john4)).
assert(boy(john3)).
assert(boy(john2)).
assert(boy(john1)).
我如何保存在文件中这一事实?
事实在序言中,如果我断言某些事实,例如:保存断言在序言
assert(boy(john4)).
assert(boy(john3)).
assert(boy(john2)).
assert(boy(john1)).
我如何保存在文件中这一事实?
如果您使用的是SWI-Prolog,那么一个替代方案是persistency.pl
库。您需要声明持久的谓词及其参数类型。然后你可以使用assert_mypred
和retract_mypred
。更多信息:http://www.swi-prolog.org/pldoc/doc/swi/library/persistency.pl
[链接](http://stackoverflow.com/questions/2435237/prolog-assert-and-retract?rq=1) 我发现它并且它正确:) – user2254798 2013-04-07 16:25:41
您可能会感兴趣[这个问题](http://stackoverflow.com/q/8269971/487781),其中的一个答案讨论了在你找到的链接中使用的**机制的一个替代方法** tell/1。另外[SWI-Prolog有其自己的机制](http://stackoverflow.com/a/10141788/487781)用于保存解释器状态(但您不指定哪个Prolog感兴趣)。 – hardmath 2013-04-09 02:37:20