【发布时间】:2021-01-06 10:05:18
【问题描述】:
让 L 是一个数字列表,并考虑以下 Prolog 定义的谓词 g(list,list) 与流模型(输入,输出):
g([],[]).
g([H|T],[H|S]):-
g(T,S).
g([H|T],S):-
H mod 2 =:= 0,
g(T,S).
给出以下目标的结果:g([1,2,3],L)。证明答案。
我已经看到,当它仅在第二个分支上时结果将是 [1,2,3],而当它与排除偶数的第三个分支结合时,第二个答案是 [1,3]。这是一个很好的解释吗?
【问题讨论】: