在swi-prolog中将文本写入内存中的缓冲区?

时间:2016-06-09 19:54:24

标签: prolog swi-prolog

这正是我想要实现的目标。

process(P,Txt) :- 
    % do stuff and write messages to Txt, but not to std out.

start(P) :-
    process(P,Txt),
    write(Txt).   % now write to std out.

我可以用SWI-Prolog做到这一点吗?有没有办法将文本写入内存中的流,并在以后输出该文本?

1 个答案:

答案 0 :(得分:1)

SWI-Prolog提供了一些非标准但非常有用的功能,可以帮助您完成任务。其中一个是内存文件,可用于临时缓冲数据。详情请见:

http://www.swi-prolog.org/pldoc/man?section=memory-files

另一种选择可能是使用with_output_to/2内置谓词,允许您写入例如和原子或后来输出的字符串:

http://www.swi-prolog.org/pldoc/doc_for?object=with_output_to/2