Как я могу реализовать, “Я - свой собственный Дедушка”, в Прологе?

Если можно сделать приближение количества объектов, которые будут там в конце, использовать перегрузку Списка constuctor, который берет количество в качестве параметра. Вы сохраните некоторые дорогие дублирования Списка. Иначе необходимо заплатить за него.

10
задан SQB 3 December 2013 в 07:02
поделиться

2 ответа

Мой курс пролога был давным-давно, но как насчет удаления

parent(X,Y):-
   child(Y,X).

и простой замены любого использования parent (A, B) на потомок (B, A) ? Вы все еще можете добавлять факты о родителях, потому что обратное правило все еще доступно - вы также можете удалить его, но в этом случае вы больше не сможете использовать какие-либо факты о родителях, и вам придется записывать все свои факты как ребенок (a, b) тоже.

Это то же самое, не правда ли?

4
ответ дан 4 December 2019 в 00:26
поделиться

Обратите внимание, что мои знания Prolog старые (и никогда не настолько глубокие). ..

Я думаю, вам нужно сделать родительский (или дочерний) первичным (не зависящим от других отношений).

child(X,Y):-
    parent(Y,X).

parent(X,Y):-
    child(Y,X).

- это то, что, вероятно, вызывает петли.

2
ответ дан 4 December 2019 в 00:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: