Дублирующиеся решения

У меня проблема при попытке получить код, возвращающий уникальные ответы на мой запрос. Например, определение

stuff(A,B,C) :- A=C ; B=C.
morestuff([],[],[]).
morestuff([A|AA],[B|BB],[C|CC]) :- stuff(A,B,C), morestuff(AA,BB,CC).

, а затем выполнение

morestuff([A,A],[A,B],[a,b]).

дает результат:

A = a
B = b ? ;

A = a
B = b ? ;

yes.

Как видите, два решения одинаковы. Есть ли способ просто заставить PROLOG возвращать уникальные решения, т.е. дайте результат:

A = a
B = b ? ;

yes.
8
задан false 23 November 2013 в 20:26
поделиться