Файл: написать эмулятор предиката RETRACTALL (Запись в файл фактов БД) - Prolog

Формулировка задачи:

Доброго времени суток форумчане. Появилась надобность написать эмулятор предиката retractall() для базы данных, без возможности использовать retract. Самое очевидное - записать в файл все факты, и считать все те, не совпадающие с введенным. И так, первым делом я определил предикаты базы данных:
global facts
 
fact(string)
fact2(string)
Далее добавил в обе базы факты:
assertz(fact("1"))
И как только пытаюсь записать в базу данных факты, он каким то непонятным образом записывает сразу же все факты обоих баз данных:
save(fact2)
Как избавиться от какой проблемы, и записывать конкретно факты определенной базы данных? И как можно потом считывать факты с помощью consult, избегая определенные? Заранее всем благодарен за ответы! Добавлено через 7 минут Забыл упомянуть, используемая среда разработки: Visual Prolog 5.2


textual

Код к задаче: «Файл: написать эмулятор предиката RETRACTALL (Запись в файл фактов БД) - Prolog»

facts - source
fact(string)
facts - destination
fact2(string)
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

12   голосов, оценка 3.750 из 5

Источник