1. predicado membero saída: a b c a No se modificado (com corte): a No 2. predicado genseq, linear genseq(N,L) :- genseqaux(1,N,L). genseqaux(I,J,[]) :- I > J. genseqaux(I,J,[I|L]) :- I =< J, I1 is I + 1, genseqaux(I1,J,L). 3. predicado simples simples([],[]). simples([H|T],R) :- member(H,T), simples(T,R). simples([H|T],[H|R]) :- simples(T,R). 4. predicado occ(A,L,N). % Esta e' a linda solucao apresentada pelo aluno Carlos Nakashima: occ(_,[],0). occ(A,[A|T],N) :- occ(A,T,N1), N is N1 + 1, !. occ(A,[_|T],N) :- occ(A,T,N). % Esta e' a solucao que eu tinha imaginado inicialmente: occ(A,L,N) :- conta(L,C), member([A,N],C). occ(_,_,0). % conta: este predicado foi dado numa % das listas de exercícios (lista 3). conta([],[]). conta([H|T],R) :- conta(T, R1), coloca(H,R1,R). coloca(A,[],[[A,1]]). coloca(A, [ [A,N] | R ], [ [A,N1] | R ]) :- !, N1 is N+1. coloca(A, [H|L], [H|R]) :- coloca(A,L,R).