[Prolog] Listen zusammenführen

Heinzi1991

Erfahrenes Mitglied
#1
Hallo liebe Community,

ich hab eine kleine Frage zu einem Programm (recht simpel und klein) von mir in Prolog.

Also einmal zur Aufgabenstellung:
"Schreiben Sie ein tail-rekursives Prädikat zip(L1,L2,R), welches aus den
Elementen Listen L1 und L2 ein Liste von Paaren pair erstellt, und diese in
R ausgibt. Sie können davon ausgehen das beide Listen die gleiche Länge haben."

Hier einmal mein Code:
Code:
zip(L1,[],L1):- !.
zip([],L2,L2):- !.
zip([H1|T1],[H2|T2],[H1,H2|T3]) :- zip(T1,T2,T3).
Meine Lösung:
Code:
R = [a, 1, b, 2, c, 3].
Richtige Lösung sollte so ausschauen:
Code:
R = [pair(a,1), pair(b,2), pair(c,3)]
Kann mir jemand sagen was ich falsch mache, den die Logik müsste ja stimmen, schaffe es einfach nicht das Pair reinzubekommen in die dritte Liste.