Для заданного списка 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).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д