Это может быть простая проблема, но мне нужно сделать это по-другому. Проблема в том, что я должен найти в прологе возможные маршруты полетов. У меня есть эта база знанийProlog Infinite loop (циклический график)
from_to(fresno,seattle).
from_to(fresno,albany).
from_to(albany,dallas).
from_to(fresno,boston).
from_to(dallas,seattle).
from_to(dallas,albany).
from_to(seattle,dallas).
from_to(seattle,omaha).
from_to(atlanta,albany).
from_to(atlanta,dallas).
from_to(atlanta,boston).
from_to(omaha,atlanta).
from_to(omaha,albany).
from_to(albany,seattle).
И я должен сделать маршрут предикат (X, Y), который проверяет, если мы можем перейти от X к Y. То, что я сделал это:
route(X,Y):-from_to(X,Y).
route(X,Y):-from_to(X,Z), route(Z,Y).
Но это не работает, потому что график цикличен. Я искал в Интернете, и единственное, что все говорили, это использовать список и проверить посещаемые пути. Но я не могу использовать списки! Я должен сделать предикатный маршрут (X, Y) без использования списков, как я могу выполнить это без списка? Спасибо
спасибо за ваш ответ, но это все еще использует списки, я спрашиваю, возможно ли это без списков, это, безусловно, легкая проблема, потому что это первое упражнение, но я просто не могу этого сделать. –
@SasukeItachiUchihaClan: вы можете сделать это с помощью assert, но это очень склонно к ошибкам! – false
спасибо за информацию, упражнение действительно прост, но я не знаю, как это сделать, это действительно разочаровывает ... –