1
과제의 경우 Start
에서 Finish
까지의 경로가 있고 Visits
에있는 도시를 방문하면 성공한 술어 route/3
을 작성해야합니다.내 목록에 데이터가 채워지지 않는 이유는 무엇입니까?
솔루션에 대한 아이디어가 떠오르지 만이 끝나면 어떤 이유에서든 Visits
목록이 항상 비어 있으며 그 이유를 알 수 없습니다. 나는 그 문제에 대한 해결책을 찾고 있지 않다. 올바른 방향으로 나를 가리키고있다. write
에 내 전화 디버깅 이유로 단순히
참고 :
여기에 지금까지 내 코드입니다.road('Wellington', 'Palmerston North', 143).
road('Palmerston North', 'Wanganui', 74).
road('Palmerston North', 'Napier', 178).
road('Palmerston North', 'Taupo', 259).
road('Wanganui', 'Taupo', 231).
road('Wanganui', 'New Plymouth', 163).
road('Wanganui', 'Napier', 252).
road('Napier', 'Taupo', 147).
road('Napier', 'Gisborne', 215).
road('New Plymouth', 'Hamilton', 242).
road('New Plymouth', 'Taupo', 289).
road('Taupo', 'Hamilton', 153).
road('Taupo', 'Rotorua', 82).
road('Taupo', 'Gisborne', 334).
road('Gisborne', 'Rotorua', 291).
road('Rotorua', 'Hamilton', 109).
road('Hamilton', 'Auckland', 126).
route(Start, Start, Visits) :-
write(Visits), nl.
route(Start, Finish, Visits) :-
write(Visits),nl,
road(Finish, From, _),
route(Start, From, [From | Visits]).
test :-
Visits = [],
route('Auckland', 'Wellington', Visits),
write(Visits).
출력 test.
러닝 프롤로그
1 ?- test. [] [Palmerston North] [Wanganui,Palmerston North] [Taupo,Wanganui,Palmerston North] [Hamilton,Taupo,Wanganui,Palmerston North] [Auckland,Hamilton,Taupo,Wanganui,Palmerston North] [] true .