将断言的事实保存在file as子句中

时间:2013-10-16 17:50:27

标签: prolog

我有一个程序,我断言了一些事实。例如:

apple(red)
dog(browm)
desk(black)

我想在文件中创建一个子句。例如:

  mylife(my):- 
      apple(red),
      dog(browm),
      desk(black).

如何在文件txt中写入事实?

1 个答案:

答案 0 :(得分:2)

应该更容易 ?- tell(a_file), listing(mylife), told.

format('~q.~n', [T])(或writeq(T))也可以提供帮助。

当然,根据您的实际需求,IO细节会有很大差异。如果您的数据库很大,并且您正在使用SWI-prolog,请查看QLF格式。加载速度要快得多......

请注意,tell / tell是一个简单的工具,容易出错,在生产中您应该open(a_file, write, S), ..., close(S).处理错误的代码(请参阅setup_call_cleanup / 3)