Сохранение утвержденных фактов в Прологе

В прологе, если я утверждаю какой-то факт, например:

assert(boy(john4)).
assert(boy(john3)).
assert(boy(john2)).
assert(boy(john1)).

Как мне сохранить этот факт в файле?


person user2254798    schedule 07.04.2013    source источник
comment
ссылка, я нашел ее и ее правильно :)   -  person user2254798    schedule 07.04.2013
comment
Возможно, вас заинтересует этот вопрос, в одном ответе на который обсуждается альтернатива устаревшему tell / 1, механизм, использованный в найденной вами ссылке. Также SWI-Prolog имеет свой собственный механизм для сохранения состояния интерпретатора (но вы не указываете, какой Prolog вас интересует).   -  person hardmath    schedule 09.04.2013


Ответы (1)


Если вы используете SWI-Prolog, то альтернативой является библиотека persistency.pl. Вам необходимо объявить постоянные предикаты и их типы аргументов. Затем вы можете использовать assert_mypred и retract_mypred. Дополнительная информация: http://www.swi-prolog.org/pldoc/doc/swi/library/persistency.pl

person Raivo Laanemets    schedule 30.07.2013