我有这个返回的 Prolog 代码:[[vincent,vincent],[vincent,marcellus],[marcellus,vincent],[marcellus,marcellus],[pumpkin,pumpkin],[honey_bunny,honey_bunny]]
。
:- initialization main.
loves(vincent, mia).
loves(marcellus, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
jealous(X, Y) :-
loves(X, Z),
loves(Y, Z).
main :-
findall([X, Y], jealous(X, Y), L),
write(L),
halt.
当 X != Y 时如何得到唯一的结果?我尝试了以下代码以获得与以前相同的结果。
jealous(X, Y) :-
X \== Y,
loves(X, Z),
loves(Y, Z).
有了\=
,我得到了[]
。如何只得到[vincent,marcellus]
结果?