2

ここに 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] ...

事実が必要な場合はお知らせください。ご協力をお願いいたします。ありがとう!

4

1 に答える 1