我有用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