Trabalho prolog
Curso de Engenharia da Computação
Paradigmas de Linguagens de Programação – 2013.2
Prof. Marcos Bendor
Aluno:_________________________________________________________
Lista de Exercícios – Prolog
Represente em Prolog os seguintes predicados genéricos sobre listas:
1) adiciona(X,L1,L2) – onde L2 é a lista que contém o elemento X e a lista L1.
Testar este predicado no interpretador Prolog, executando:
?- adiciona(1,[2,3],L).
?- adiciona(X,[2,3],[1,2,3]).
2) apaga(X,L1,L2) – onde L2 é a lista L1 sem o elemento X. Testar com:
?- apaga(a,[a,b,a,c],L).
?- apaga(a,L,[b,c]).
3) membro(X,L) – que é verdadeiro se X pertencer à lista L. Testar com:
?- membro(b,[a,b,c]).
?- membro(X,[a,b,c]). % carregar em ;
?- findall(X,membro(X,[a,b,c]),L).
4) concatena(L1,L2,L3) – onde L3 é resultado da junção das listas L2 e L1.
Testar com:
?- concatena([1,2],[3,4],L).
?- concatena([1,2],L,[1,2,3,4]).
?- concatena(L,[3,4],[1,2,3,4]).
5) comprimento(X,L) – onde X é o número de elementos da lista L. Testar com: ?- comprimento(X,[a,b,c]).
6) maximo(X,L) – onde X é o valor máximo da lista L (assumir que L contém somente números). Testar com:
?- maximo(X,[3,2,1,7,4]).
7) media(X,L) – onde X é o valor médio da lista L (assumir que L contém somente números). Testar com:
?- media(X,[1,2,3,4,5]).
8) Retorne o último elemento de uma lista fornecida
9) Defina um predicado count(X,L,N) que é satisfeito quando o elemento X ocorre em L exatamente N vezes.
10) menorDeDois: recebe dois valores e retorna o menor
11) menorDeTres: recebe três valores e retorna o menor
12) fatorial: recebe um numero natural e retorna o seu fatorial
13) elemento: recebe um número inteiro positivo e uma lista para retornar o nésimo elemento da lista. Ex.: elemento(1, [3, 7, 4, 2], X) ==> X=3
14) pertence: recebe um elemento e uma lista e verifica se o elemento pertence à lista. Ex: pertence(1, [3,7,4,2]) = No
15) numElementos: recebe