我在序言中有以下代碼來產生從一個節點到另一個節點的路徑,但我無法在屏幕上看到我的結果。我只是得到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