我有一个程序,我断言了一些事实。例如:
apple(red)
dog(browm)
desk(black)
我想在文件中创建一个子句。例如:
mylife(my):-
apple(red),
dog(browm),
desk(black).
如何在文件txt中写入事实?
答案 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)