Visual Prolog прокомментировать код программы

Отменен
Заказ
4763189
Раздел
Программирование
Антиплагиат
Не указан
Срок сдачи
6 Мая 2022 в 06:00
Цена
500 ₽
Блокировка
10 дней
Размещен
3 Мая 2022 в 13:34
Просмотров
74
Описание работы

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


/*Определите предикат p(+V, +N, -L) - истинный тогда и только тогда, когда L - список элементов списка V, встречающихся в нем не менее N раз. 

Проверьте работу этого предиката на примере [a, a, b, a, c, b, c, a, b, b, d, a, b] для N=1,2,5,0.*/


domains

list = symbol*


predicates

p(list, integer, list).

countdel(integer,integer,symbol,list,list).

countn(integer,integer,symbol,list,list).


clauses

p([A|B],N,C) :- !, countdel(1,Na,A,B,Bn), p(Bn,N,D), countn(N,Na,A,D,C).

p(_,_,[]).

countdel(A,B,C,[C|D],E) :- !, F=A+1, countdel(F,B,C,D,E).

countdel(A,B,C,[D|E],[D|F]) :- !, countdel(A,B,C,E,F).

countdel(A,A,_,_,[]).

countn(A,B,C,D,[C|D]) :- B>=A, !.

countn(_,_,_,A,A).


goal

%p([a, a, b, a, c, b, c, a, b, b, d, a, b],1,L).

%p([a, a, b, a, c, b, c, a, b, b, d, a, b],2,L).

%p([a, a, b, a, c, b, c, a, b, b, d, a, b],5,L).

%p([a, a, b, a, c, b, c, a, b, b, d, a, b],0,L).

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир