

% iii
pertence(X, [X|_]).
pertence(X, [Y | L]) :- X \= Y, pertence(X,L).

%iv. Construir a extensão do predicado «comprimento», capaz de calcular o número de elementos existentes numa lista;
comprimento([],0).
comprimento([A|B], C):- comprimento(B,D), C is 1+D.

% V

quantos([],0).
quantos([X | Y], R) :- pertence(X,T), quantos(T,R).
quantos([X | Y], R) :- quantos(T,R1), R is 1+R1.

% Vi
apagar(X,[X|Y],Y). % apaga o primeiro elemento da lista (cabeça)
apagar(X,[K,L], [K,L1] :- apagar[X, L, L1] %apaga um elemento que está na cauda


% Vii- copiado nao consegui resolver!

apagartudo(_,[],[]).
apagartudo(X, [X | Y], R) :- apagartudo(X, Y, R).
apagartudo(X, [Z | Y], [Z | R]) :- apagartudo(X, Y, Z).

%Vii