Also muss ich einen Prolog Begriff namens doubleAll7/2
schreiben, der zwei Listen dauert. Das Programm gibt true zurück, wenn für jede 7, die in der ersten Liste auftritt, die zweite Liste zwei aufeinanderfolgende Sieben enthält. Beispiel doubleAll7([1,7,1],[1,7,7,1])
ist wahr, aber doubleAll7([1,2,7],[1,2,7])
ist falsch.Prolog überprüft, ob zwei Listen identisch sind
double7/2
verdoppelt alle Vorkommen von 7 in einer Liste und funktioniert perfekt.
Aus irgendeinem Grund gibt dieses Programm immer false zurück.
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).
Oh jeez, dass es behoben ... hatte diesen Fehler mehrmals vor gemacht und als ich es behoben hat nicht funktioniert. Ich habe es nicht wieder gelöst und konnte nicht sagen, wann ich es richtig gemacht habe – user237083
@ user237083 - Ich weiß ... Ich bin ein Experte, der diese Art von Fehlern macht. – max66