/* Musterlösung Übungsaufgabe 2 */ jedes_zweite([],[]). jedes_zweite([X],[]). jedes_zweite([_,Zweites|R],[Zweites|R1]) :- jedes_zweite(R,R1). /*Einfache Lösung*/ drehe_um_naiv([],[]). drehe_um_naiv([X|R],Lr) :- drehe_um_naiv(R,LrA), append(LrA,[X],Lr). /*Effizenteste Lösungn mit Akkumulationsliste*/ drehe_um_eff(L,Lr) :- drehe_um(L,[],Lr). drehe_um([],Lr,Lr). drehe_um([X|R],L,Lr) :- drehe_um(R,[X|L],Lr). /*Dritte Aufgabe: Verteile eine Liste auf 2 Listen, in irgendeiner Reihenfolge*/ unterteilung([],[],[]). unterteilung(L,[K|R1],L2) :- streiche(K,L,Lneu), unterteilung(Lneu,R1,L2). unterteilung(L,L1,[K|R2]) :- streiche(K,L,Lneu), unterteilung(Lneu,L1,R2). streiche(K,[K|R],R). streiche(X,[K|R],[K|R1]) :- streiche(X,R,R1).