我在这里有一个 Prolog 问题,我试图将独特的机场加入列表,但我的谓词没有按预期工作。
not_member(C, []).
not_member(C, [H|L]) :-
not_member(C, L),
C \== H.
path(X, Y, [X,Y]) :-
flight(X, Y, _, _, _, _).
path(X, Y, [X,P]) :-
not_member(Z, P),
flight(X, Z, _, _, _, _),
flight(Z, Y, _, _, _, _),
path(Z, Y, P).
具有预期答案的示例查询:
?- path(dublin, rome, L)
L = [dublin, rome] ;
L = [dublin, paris, rome] ...
如果您需要事实让我知道,我们将不胜感激。谢谢!