我正在学习 Prolog,当我尝试查找路线时出现蠕变错误。我认为我所做的是递归,因为这是在没有直路时找到路线的方法。
这是代码:
route(london,paris).
route(paris,rome).
route(rome,spain).
route(london,berlin).
route(berlin,praga).
route(london,dublin).
route(dublin,berlin).
path(X,Y,[X,Y]):- straight(X,Y).
path(X,Z,[X | other]):- straight(X,Y), path(Y,Z,other).
当我试图找到时,假设从伦敦到罗马的路线
path(london,rome,Store).
我收到此错误:
Exception: (8) straight(london, rome) ? creep
Exception: (7) path(london, rome, _G4705) ? creep
我究竟做错了什么?我应该定义别的东西吗?
提前致谢!