我有用prolog語言編寫的這個程序。 問題是,我不明白它是如何工作的。Prolog - 該程序如何工作
even_number([],[]).
even_number([H|T],S):-even_number(T,W),Z is H mod 2,Z==0,S=[H|W].
even_number([_|T],S):-even_number(T,S).
它只是從列表中提取偶數並將其存儲到另一個列表中。 我知道它使用遞歸,但我不能理解在執行過程中所做的步驟。 任何人都可以解釋嗎?
Ted的回答很好,但是嘗試將該程序保存到文件中,啓動一個prolog解釋器,加載程序('[filename] .'),開始跟蹤(使用trace.'),然後調用'even_number'統治與清單。在試圖瞭解它的工作原理時,逐步看到它的執行是非常有用的。 – 2011-05-26 01:15:11