這是一個立方體,其邊緣是定向的;它只能從左到右,從上到下,從上到下。
edge(a,b).
edge(a,c).
edge(a,e).
edge(b,d).
edge(b,f).
edge(c,d).
edge(c,g).
edge(d,h).
edge(e,f).
edge(e,g).
edge(f,h).
edge(g,h).
通過下面的方法,我們可以檢查我們是否可以從A-H去做例如:cango(A,H)。
move(X,Y):- edge(X,Y).
move(X,Y):- edge(X,Z), move(Z,Y).
隨着move2,我試圖執行所需步驟的impalement計數。
move2(X,Y,N):- N is N+1, edge(X,Y).
move2(X,Y,N):- N is N+1, edge(X,Z), move2(Z,Y,N).
我將如何實現這一點?
「NN是N + 1」將失敗,N尚未實例化。遞歸調用後移動(並丟失尾遞歸優化...) – CapelliC
謝謝,錯過了! –
@chac:*實例化* – false