Я получаю несколько результатов с одинаковыми выходами.
Я хочу получить jack,jane только один раз, но я получаю его два раза.
jack,jane
Как мне этого избежать? Я пытался setof, но я не мог сделать это. Пожалуйста, может кто-нибудь помочь мне в этом?
setof
Этот вопрос продублирован в "Как остановить повторы в правилах в прологе" .
Ответ - сделать что-то вроде этого:
solve :- marriedcouple(Dad, Mum), not(found(marriedcouple(Dad, Mum))), assert(found(marriedcouple(Dad, Mum))), write([Dad, Mum]), nl, fail.
Прочитайте полный ответ для более подробной информации.