Один запрос для завершения моей программы должен проверить, существует ли прямой маршрут между двумя указанными городами. Кроме того, он может перечислить все подключенные города для данного города. См. Следующее:
flight(city1,city2).
flight(city2,city1).
flight(city2,city3).
flight(city3,city2).
Мои предикаты:
route(X,Y):-
flight(X,Y).
route(X,Y) :-
flight(X,Z),
route(Z,Y).
Мой результат:
?- route(city1,X).
X = city2 ;
X = city1 ;
X = city3 ;
X = city2 ;
X = city1 ;
X = city3 ;
X = city2 ;
X = city1 ;
X = .......
Но у меня бесконечная ie рекурсия, и она не может стоп. Что я могу решить эту проблему?