Как избежать повторения в прологе - PullRequest
1 голос
/ 19 марта 2010

Я получаю несколько результатов с одинаковыми выходами.

Я хочу получить jack,jane только один раз, но я получаю его два раза.

Как мне этого избежать? Я пытался setof, но я не мог сделать это. Пожалуйста, может кто-нибудь помочь мне в этом?

1 Ответ

1 голос
/ 19 марта 2010

Этот вопрос продублирован в "Как остановить повторы в правилах в прологе" .

Ответ - сделать что-то вроде этого:

solve :-
    marriedcouple(Dad, Mum),
    not(found(marriedcouple(Dad, Mum))),
    assert(found(marriedcouple(Dad, Mum))),
    write([Dad, Mum]),
    nl,
    fail.

Прочитайте полный ответ для более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...