我在序言中有以下代码来产生从一个节点到另一个节点的路径,但我无法在屏幕上看到我的结果。我只是得到true作为答案。最后一个变量名称不绑定到的结果:Prolog代码不工作
edge(a,b).
edge(b,d).
edge(b,c).
edge(c,d).
path(A,B,P):-
path_1(A,B,[A],P).
path_1(A,B,P,Path):- last_element(P,S),S=B.
path_1(A,B,P,Path):-
edge(A,X),\+member(X,P),append(P,[X],NewP),
path_1(X,B,NewP,NewP).
last_element([X],X).
last_element([H|T],X):-
last_element(T,X).
我想要得到的东西,如:K=[a,b,d]
等。当我运行这段代码:path(a,d,K)
但它没有显示出来。只有true显示出来。
想知道为什么。谢谢
尝试'trace'。这会有很大的帮助。 – 0605002 2012-01-17 15:19:20
我已追溯到sooo时间,但无法找到它 – 2012-01-17 15:20:39