Как сохранить термин в файл в Прологе? - PullRequest
2 голосов
/ 05 января 2011

Как я могу сохранить необходимые условия в файл? Например,

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

сохраняет все пользовательские термины в файл File. Но как сохранить в файл только необходимые термины?

1 Ответ

3 голосов
/ 05 января 2011

Ваше определение 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) будет именно тем, что вам действительно нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...