0
member_state(S, S|_).
member_state(X, _|T) :- member_state(X,T).
step1 :- step2(state(l,l,l,l)).
step2(X) :- step3(X|state(l,l,l,r)).
step3(X) :- step4(X|state(l,l,r,l)).
step4(X) :- member_state(state(l,l,l,l), X).
我試圖在每個調用上創建一個列表,然後在最後通過調用step1檢查插入的狀態是否在創建的列表中。 prolog在這裏給我一個錯誤的結果。任何人都可以指出這個問題嗎?我需要得到的是。謝謝。 (這只是一個測試 - 不是實際的代碼)遞歸調用序言和傳遞列表