在 swi-prolog 中将文本写入内存中的缓冲区?
Write text to a buffer in memory in 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 做这个吗?有没有办法将文本写入内存中的流,然后再输出该文本?
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
这几乎就是我想要实现的目标。
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 做这个吗?有没有办法将文本写入内存中的流,然后再输出该文本?
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