2011-01-05 1 views
2

必要な用語をファイルに保存するにはどうすればよいですか?例えば、Prologで用語をファイルに保存する方法は?

save_to_file(File) :- 
    tell(File), 
    listing,   
    told. 

Fileを提出するために、すべてのユーザー用語を が保存されます。 しかし、必要な用語のみをファイルに保存するにはどうすればよいですか?

答えて

3

safe_to_file/1の定義は、open/3とclose/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)が実際に必要なものになります。

+0

好き(ジョン、リンゴ)、好き(マイク、オレンジ)、好き(マリー、キャベツ)などの類似の用語をすべて保存するにはどうすればよいですか? – qutron

+2

上記のリストを変更してください。だから、リスティングの代わりに、リスティングを好きなものに置き換えたり、より具体的にするためにリスティング(likes/2)したりすることができます。 – Roman

+0

@qutron:ああ、あなたが望むのは、用語を保存するのではなく、述語をファイルに追加する。 – false

関連する問題