Verifique se a frequência de algum elemento está acima de um limite
Quero resolver um problema que é: tenho uma lista de elementos do Prolog. Se alguma frequência do elemento for maior queN
então false é return. Minha expectativa como abaix
?- frequency([1,2,2,2,5],3).
true.
?- frequency([1,2,2,2,2,5],3).
false.
Eu tenho um código para obter frequência de elemento específico. Alguma idéia para o problem
count(_, [], 0) :-
!.
count(X, [X|T], N) :-
count(X, T, N2),
N is N2 + 1.
count(X, [Y|T], N) :-
X \= Y,
count(X, T, N).