Lista 1 de Prolog (versao 1)
Problema 1
Dado os predicados:
- genitor(X,Y) se X é um dos pais biologicos de Y,
- homem(X) se X é homem
- mulher(X) se X é
mulher.
Defina os predicados:
- et(X) se X tiver mais que 2 genitores.
- erro se existir alguem com mais que 2 genitores ou com
genitores de mesmo sexo.
- tabu se existir algum par mae/filho ou pai/filha que tiveram
um filho ou filha.
- sub_tabu se algum par sobrinho/tia, ou sobrinha/tio
tiveram um filho ou filha.
- filho_unico(X) se X é o unico filho dos dois de seus pais.
Problema 2
Escreva o predicado conta(X,A,N) que é verdadeiro se N é o
numero de vezes que o atomo A aprece na lista X e em todas as suas
sublistas, subsublistas, etc.
Ex: conta([[a,b],[c],[c,[e,f],g], [a,c],[f],[c,[],g]] , c, N)
é verdadeiro com N = 4.
Só a primeira solução do predicado será avaliada.
Problema 3
Escreva o predicado separa(X,IMPAR,PAR) que é verdadeiro se
IMPAR é a lista que contem todos os elementos de X nas posições
impares (1,3,5 etc), e PAR a lista de todos os elementos de X nas
posições pares.
Ex: separa([a,b,c,d,e] , [a, c, e] , [b,d])
é verdadeiro