Вывести сколько раз встречается в списке каждый элемент - Prolog

Узнай цену своей работы

Формулировка задачи:

Вывести сколько раз встречается в списке каждый элемент, помогите срочно нужно, в prologе не шарю совсем, а на форуме ничего не нашел)))

Решение задачи: «Вывести сколько раз встречается в списке каждый элемент»

textual
Листинг программы
domains
 
int=integer
intl=int*
intll=intl*
 
predicates
 
delall(int,intl,intl)
count(int,intl,int)
task(intl,intll)
 
clauses
 
delall(_,[],[]).
delall(X,[X|T],Q) :- delall(X,T,Q).
delall(X,[Y|T],[Y|Q]) :- Y<>X, delall(X,T,Q).
 
count(_,[],0).
count(X,[X|T],N) :- count(X,T,N1), N=N1+1.
count(X,[Y|T],N) :- X<>Y, count(X,T,N).
 
task([],[]).
task([X|T],[[X,Y]|R]) :- count(X,T,N), Y=N+1,  delall(X,T,TT), task(TT,R).
 
 
task([1,2,3,1,1,6,6,7,2],Z)
Z=[[1,3],[2,2],[3,1],[6,2],[7,1]]

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы