图表如下图所示。我必须告诉两个节点之间是否有路径并打印路径。例如:我的查询是路径(a,c)。那么它将返回True。现在,当我将查询作为路径(g,f)给出时,Ist 和第二个结果为 True,之后它没有终止,而是开始循环。我是序言的新手。请提出一些解决方案,以在获得正确数量的路径后停止递归 这些是事实
arc(a,b).
arc(b,c).
arc(c,d).
arc(d,b).
arc(b,g).
arc(g,b).
arc(d,g).
arc(g,d).
arc(f,d).
arc(a,e).
arc(f,e).
arc(a,d).
arc(f,g).
arc(c,f).
path(X,Y):- arc(X,Y).
path(X,Y):- arc(X,Z),path(Z,Y).