我对 Prolog 很陌生。我graph.pl
在下图中定义:
这是我的 Prolog 代码:
edge(a,e).
edge(e,d).
edge(d,c).
edge(c,b).
edge(b,a).
edge(d,a).
edge(e,c).
edge(f,b).
path(X,X).
path(X,Y):- edge(X,Z) ; path(Z,Y).
我是这样理解的:只有在顶点X
和顶点Y
之间有一条边X
并且顶点和顶点Z
之间有一条路径Z
Y
(某种递归)时,顶点和顶点之间才有一条路径。
这对呈现的图表是正确的吗?当我向 Prolog 询问顶点A
和顶点之间的路径时,F
它给了我true
……这甚至是不对的!这段代码可能有什么问题?