Ybadoo - Soluções em Software Livre
Tutoriais
Programação Orientada a Objetos

Desenvolver um programa em Prolog que apresente a quantidade de vezes que um determinado elemento aparece dentro de uma lista, como no exemplo a seguir.

?- ocorrencia(b, [a, b, c, d, e], N), write(N), nl.
1

 

Arquivo ocorrencia.pl

% Função ocorrência
ocorrencia(_, [], 0).
ocorrencia(Termo, [Termo|CDR], N) :- ocorrencia(Termo, CDR, N1), N is N1 + 1.
ocorrencia(Termo, [_|CDR], N) :- ocorrencia(Termo, CDR, N).

?- ocorrencia(b, [a, b, c, d, e], N), write(N), nl.
1