ここに 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] ...
事実が必要な場合はお知らせください。ご協力をお願いいたします。ありがとう!