Для заданного списка L построить список пар [X,N], где X - элемент L, а N - число вхождений X в L - Prolog

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

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

Здравствуйте, помогите, пожалуйста, разобраться в программе на Prolog! Несколько дней бьюсь все никак не доходит как она работает! Напишите предикат p(+S,?L), который выдает список L, получающийся из списка S преобразованием каждого элемента x в пару [x, n], где n ¬ число вхождений элемента x в список S, например,

Решение задачи: «Для заданного списка L построить список пар [X,N], где X - элемент L, а N - число вхождений X в L»

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

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


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

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

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