% Vlož prvek na začátek seznamu vloz(P, Seznam, [P|Seznam]). % nebo v rámci klauzule klauzule :- Prvek = a, Seznam = [x, y, z], NovySeznam = [Prvek | Seznam]. % Je prvek členem seznamu prvek(X, [X|_]) :-!. prvek(X, [_|T]) :- prvek(X, T). % Spojení dvou seznamů spoj(L1, L2, L) :- L1 = [], L = L2. spoj(L1, L2, L) :- L1 = [H|T1], L = [H|T], spoj(T1, L2, T). % nebo taky zkráceně spoj([], L, L). spoj([H|T1], L2, [H|T]) :- spoj(T1, L2, T). % Odstraň všechny výskyty prvku ze seznamu odstran(_, [], []) :- !. odstran(X, [X|T], L) :- odstran(X, T, L), !. odstran(X, [H|T1], [H|T2]):- odstran(X, T1, T2). % Je seznam lineární linear([]). linear([H|T]):- atomic(H), linear(T). % Je seznam podseznamem podseznam(Cast,Celek) :- append(_,Pom,Celek), append(Cast,_,Pom), Cast \= [], !.