1
2つのリストを取るdoubleAll7/2
と呼ばれるプロローグ用語を書く必要があります。プログラムは、最初のリストで発生する7つごとに、2つ目のリストに2つのセブンが並んでいる場合にtrueを返します。 例doubleAll7([1,7,1],[1,7,7,1])
はtrueですが、doubleAll7([1,2,7],[1,2,7])
はfalseです。2つのリストが同一であるかどうかを確認するプロローグ
double7/2
は、リスト内の7つの出現を2倍にし、完全に機能します。
何らかの理由で、このプログラムは常に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).
これを固定したああ...そのエラーは数回前にしていましたが、固定しても機能しませんでした。私はそれをもう一度固定しなければならないし、私がそれを正しくしたときにはわからない。 – user237083
@ user237083 - 私は知っている...私はこのタイプのエラーをやっている専門家だ。 – max66