我想通過例子來理解序言。我寫了一段代碼,但沒有按照預期的方式工作,我無法找到故障。用列表操作
list([]).
test([],_,_).
test([Child|List],B,C) :-
append([Child],B,C),
test(List,B,C).
testme :-
list(Final),
test([1,2,3],Final,Result),
write(Result).
從代碼中我需要的功能Result
應該是輸入列表的反轉。當我跟蹤這段代碼時,我在C
中發現了輸入列表的反轉,但它沒有被返回。
我知道使用reverse
函數我可以很容易地找到列表的反轉,但我的興趣不在於找到相反的地方,而是瞭解這個代碼和prolog的工作。所以請有人能告訴我我的錯在哪裏以及在這段代碼中需要做些什麼修改才能正常工作。
中的代碼,非常感謝您提供了這樣一個描述性答案。它有很多幫助。 :) – anilonwebs 2011-03-02 14:07:42