我有这样的事实:在序言比较两个事实
like(sara,'data base',3).
like(sara,'math',3).
like(sara,'physics',3).
like(sara,'law',3).
like(sara,'history',5).
like(sara,'science',1).
like(tom,'chemistry',3).
like(tom,'data base',2).
like(tom,'logic',3).
like(tom,'law',3).
like(tom,'history',3).
like(tom,'science',3).
:- dynamic same_like/3.
,我要比较的事实中找到的一个主题,无论萨拉和汤姆一样,但不同的水平,所以我做的是:
comp1 :-
like(sara, NofC1, X),
like(tom, NofC2, Y),
NofC1 = NofC2,
asserta(same_like(sara, NofC1, X)),
asserta(same_like(tom, NofC2, Y)),
same_like(sara, NC1, A),
same_like(tom, NC2, B),
NC1 = NC2,
A =\= B,
write('sara and tom like the same subject " '),
write(NC1),
write(' " .But with different level, sara= '),
write(A),
write(' And tom = '),
write(B),
nl,
fail.
的答案是正确的,但有在回答重复:
sara and tom like the same subject " data base " .But with different level, sara= 3 And tom = 2
sara and tom like the same subject " data base " .But with different level, sara= 3 And tom = 2
sara and tom like the same subject " history " .But with different level, sara= 5 And tom = 3
sara and tom like the same subject " data base " .But with different level, sara= 3 And tom = 2
sara and tom like the same subject " science " .But with different level, sara= 1 And tom = 3
sara and tom like the same subject " history " .But with different level, sara= 5 And tom = 3
sara and tom like the same subject " data base " .But with different level, sara= 3 And tom = 2
false
。
问题是我该如何删除这个重复? :(
我这样做,但如果我用!不是所有的答案都会被打印出来:( – user1885169