3

listing/0SWI-Prolog REPLの出力をファイルに書き込むにはどうすればよいですか?

?- listing > file.txt.
4

1 に答える 1

8

書き込み用にファイルを開き、次のcurrent_ouputようにリダイレクトできます。

?- current_output(Orig), % save current output
   open('file.txt', write, Out),
   set_output(Out),
   listing,
   close(Out),
   set_output(Orig). % restore current output

with_output_to/2あるいは、SWI-Prolog は、現在の出力を 1 つの目標にリダイレクトするために使用できる述語を提供します。必ずドキュメントを読んでください。

?- open('file.txt', write, Out),
   with_output_to(Out, listing),
   close(Out).

これで、 の出力listing/0が に書き込まれfile.txtます。しかし、そこにはたくさんのものがあることを覚えておいてください。listing/1特定の述語に使用したいですか?この場合、特にファイルに何をどのように書き込むかをより詳細に制御したい場合は、 clause/2andを使用することも別のオプションです。私が推測するインタラクティブな使用のみを目的としています。portray_clause/2listing

于 2015-09-14T11:08:07.450 に答える