Использование open/3
и потоковый ввод / вывод:
open(file, append, S), write(S, info(X,Y)), put_char(S,.), nl(S), close(S).
Использование tell/1
и told
крайне ненадежно. Легко случается, что вывод записывается в другой файл случайно.
Редактировать: Вот пример, иллюстрирующий крайне ненадежные свойства tell/1
и told
.
Скажем, вы пишете tell(file), X > 3, write(biggervalue), told.
Это прекрасно работает, пока X > 3
Но при меньшем значении этот запрос не выполняется и ничего не пишется. Это могло быть вашим намерением. Тем не менее, следующий вывод где-то еще в вашей программе будет теперь идти в file
. Это то, что вы никогда не хотите случиться. По этой причине ISO-Prolog не имеет tell/1
и told
, а скорее open/3
и close/1
.