Даритель swipl (компилятор пролога) Неопределенная ошибка процедуры, но правило уже определено - PullRequest
0 голосов
/ 31 октября 2018

Я недавно начал изучать пролог для задания.

Вопрос, заданный для поиска оптимизированного по времени маршрута от А до Б.

Я определил ребра и правила следующим образом

bus(12,panbazar,chandmari,10,12.5,7,8).
bus(22,chandmari,paltanbazar,17.5,18,9,10).
bus(32,chandmari,paltanbazar,13,14.5,11,12).

# Определения кромок

edge1(A, B, Departure, Arrival, Dist, Cost) :-
    bus(_, A, B, Departure, Arrival, Dist, Cost),
    Time is Arrival-Departure, Time > 0.

edge(A, B, Time, Dist, Cost) :-
    bus(_, A, B, Departure, Arrival, Dist, Cost),
    Time is Arrival-Departure, Time > 0.

Здесь правило шины представляет bus(BusId, From, To, Departure, Arrival, Distance, Cost).

При запросе в swipl edge(chandmari, Q, W, E, R). возвращает результат

но при запросе edge1(chandmari, Q,W,E,R,T). Я получаю следующую ошибку.

ERROR: Undefined procedure: edge1/6
ERROR:     However, there are definitions for:
ERROR:         edge/5
false.
...