% Konkatenation zweier Listen:
app([],Ys,Ys).
app([E|Xs],Ys,[E|Zs]) :- app(Xs,Ys,Zs).

% Anhaengen eines Elementes an das Ende einer Liste:
anhang(Xs,E,XsE) :- app(Xs,[E],XsE).

% Berechne das letzte Element einer Liste:
%last([E],E).
%last([X|Zs],E) :- last(Zs,E).
last(Xs,E) :- app(_,[E],Xs).

% Ist ein Element in einer Liste enthalten?
memb(E,Xs) :- app(_,[E|_],Xs).

% Streiche ein Element aus einer gegebenen Liste:
streiche(Xs,E,Ys) :- app(L1,[E|L2],Xs), app(L1,L2,Ys).

% Ist eine Liste in einer anderen enthalten?
teilliste(Xs,Ys) :- app(_,L2,Ys), app(Xs,_,L2).
