Работа с SWI-Прологом.У меня в списке рангов сказано:
rank(London, 3.5).
rank(New York, 3.5).
rank(Seattle, 2.3).
И я пытаюсь выработать правило, которое печатает / возвращает любые факты с таким же рангом.Так что в этом случае он вернется с Лондона и Нью-Йорка.
Вот то, что я до сих пор придумал, единственная проблема - это дубликаты, которые я получаю (хотя они имеют смысл с нынешнимправило).Может ли использование рекурсии как-то помочь в этом?
equal_rank(_):-
rank(U1, R1),
rank(U2, R2),
U1 \== U2,
R1 == R2,
print(R1), print(': '), print(U1), print(', '), print(U2), nl,
fail.
Вывод будет:
3.5: London, New York
3.5: New York, London
Я просто не могу понять, как остановить эту вторую строку.