Пролог, верните только самый маленький результат - PullRequest
1 голос
/ 14 января 2020

Например, мой вывод такой:

?- sroute(india,england,X).
X = 2481 ;
X = 3438 ;
X = 1931 ;
X = 3762 ;
X = 3840 ;
X = 1922 ;
X = 2668 ;
X = 2677 ;
X = 4184 ;
X = 3227 ;
X = 2000 ;
false.

Я предполагаю, что нашел все маршруты и их расстояния (рекурсивно) в моем коде, и все они верны, но я хочу видеть только "X = 1922 " когда я спрашиваю sroute (Индия, Англия, X). Как я могу это сделать, спасибо за помощь.

1 Ответ

1 голос
/ 14 января 2020

Вы можете позвонить setof/3, чтобы получить отсортированный набор и взять только первый элемент полученного набора:

setof(X, sroute(india,england,X), [Min|_]).
...