У меня проблемы с вставкой фактов в существующий файл Prolog без перезаписи исходного содержимого.
Предположим, у меня есть файл test.pl:
:- dynamic born/2.
born(john,london).
born(tim,manchester).
Если я загружу это в пролог, и я утверждаю больше фактов:
| ?- assert(born(laura,kent)).
yes
Я в курсеЯ могу сохранить это, выполнив:
|?- tell('test.pl'),listing(born/2),told.
, который работает, но test.pl теперь содержит только факты, а не ": - dynamic born / 2":
born(john,london).
born(tim,manchester).
born(laura,kent).
Этопроблематично, потому что, если я перезагрузлю этот файл, я не смогу больше вставлять факты в test.pl, потому что ": - dynamic born / 2."больше не существует
Я где-то читал, что я мог бы сделать:
append('test.pl'),listing(born/2),told.
, который должен просто добавляться в конец файла, однако я получаю следующую ошибку:
! Existence error in user:append/1
! procedure user:append/1 does not exist
! goal: user:append('test.pl')
Кстати, я использую пролог Sicstus.Имеет ли это значение?
Спасибо!