【发布时间】:2016-12-01 01:07:36
【问题描述】:
所以我需要编写一个名为doubleAll7/2 的序言词,它需要两个列表。如果对于第一个列表中出现的每一个 7,第二个列表连续有两个 7,则程序返回 true。
示例doubleAll7([1,7,1],[1,7,7,1]) 为真,但doubleAll7([1,2,7],[1,2,7]) 为假。
double7/2 将列表中所有出现的 7 加倍,并且完美运行。
由于某种原因,这个程序总是返回 false。
doubleAll7([H1|T1],[H2,T2]) :-
double7([H1|T1], L),
L == [H2|T2].
double7([],[]).
double7([H|T], [H,H|Z]) :-
H is 7,
!,
double7(T,Z).
double7([H|T], [H|Z]) :-
double7(T,Z).
【问题讨论】:
标签: prolog