如何将项目保存到Prolog中?
问题描述:
如何保存必要的条款? 例如,如何将项目保存到Prolog中?
save_to_file(File) :-
tell(File),
listing,
told.
保存所有用户规定将File
。 但是,我怎样才能保存只有必要的文件?
答
使用open/3和close/1您可以更安全地定义safe_to_file/1。 否则,在列表/ 0期间发生的中断或错误将 使流打开,允许其他部分意外地写入相同的文件。 所以,
save_to_file(File) :-
open(File,write,Stream),
with_output_to(Stream, listing),
close(Stream).
更安全。现在,只有列表可以写入该文件。 with_output_to/2 特定于SWI,YAP。
要回到你的问题,在大多数情况下, portray_clause(Stream,Term)将是你真正想要的。
但是我应该怎么做才能保存所有类似的术语,如喜欢(约翰,苹果),喜欢(迈克,橙子),喜欢(玛丽,卷心菜)? – qutron 2011-01-05 20:29:54
只是改变上面的列表。所以,而不是上市,你可以替代上市(喜欢)或如果你想更具体,列表(喜欢/ 2) – Roman 2011-01-05 21:50:57
@qutron:啊,所以你想要的不是保存一个术语,而是保存一个选择谓词到文件。 – false 2011-01-05 22:23:46