% Aufgabe 2.1 enthaelt([H|_],H). enthaelt([H|T],E) :- H \= E, enthaelt(T,E). % Aufgabe 2.2 laenge([],0). laenge([_|T],R) :- laenge(T,R1), R is R1+1. % Aufgabe 2.3 anhaengen([],E,[E]). anhaengen([H|T],E,[H|R]) :- anhaengen(T,E,R). aneinanderhaengen([],[],[]). aneinanderhaengen([],[H|T],[H|R]) :- aneinanderhaengen([],T,R). aneinanderhaengen([H|T],L2,[H|R]) :- aneinanderhaengen(T,L2,R). % Aufgabe 2.4 letzter([H|[]],[],H). letzter([H|T],[H|R],L) :- letzter(T,R,L). umkehren([],[]). umkehren(L,[T|R]) :- letzter(L,S,T), umkehren(S,R). % Aufgabe 2.5 entfernen1([],_,[]). entfernen1([_|T],0,T). entfernen1([H|T],N,[H|R]) :- N1 is N-1, entfernen1(T,N1,R). entfernen2([],_,[],_). entfernen2([_|T],0,R,M) :- entfernen2(T,M,R,M). entfernen2([H|T],N,[H|R],M) :- N1 is N-1, entfernen2(T,N1,R,M). entfernen2(L,N,R) :- N1 is N-1, entfernen2(L,N1,R,N1). entfernen3([],_,[]). entfernen3([H|T],H,R) :- entfernen3(T,H,R). entfernen3([H|T],E,[H|R]) :- H\=E, entfernen3(T,E,R). % Aufgabe 2.6 minimum([H|[]],H). minimum([H|T],R) :- minimum(T,Rn), (H=Rn, R is Rn). % Aufgabe 2.7 summe([],0). summe([H|T],S) :- summe(T,Sn), S is Sn+H. % Aufgabe 2.8 verdoppeln([],[]). verdoppeln([H|T],[Hn|R]) :- verdoppeln(T,R), Hn is 2*H. % Aufgabe 2.9 zahlen(A,B,[]) :- B1 is B+1, A==B1. zahlen(A,B,[A|L]) :- A1 is A+1, zahlen(A1,B,L).