Для каждого элемента списка написать количество его вхождений. TurboProlog

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

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

Помогите пожалуйста!Нужно написать программу на турбопрологе Построить список, определяющий сколько раз встречается каждый элемент в списке: (A B A C B C A B D) —> ((A 3) (B 3) (C 2) (D 1))

Решение задачи: «Для каждого элемента списка написать количество его вхождений. TurboProlog»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4. intll=intl*
  5.  
  6. predicates
  7. counter(intl,int,int)
  8. delall(intl,int,intl)
  9. lcount(intl,intll)
  10.  
  11. clauses
  12. counter([],_,0).
  13. counter([X|T],X,C) :- counter(T,X,C1), C=C1+1.
  14. counter([X|T],Y,C) :- X<>Y, counter(T,Y,C).
  15.  
  16. delall([],_,[]).
  17. delall([X|T],X,R) :- delall(T,X,R).
  18. delall([Y|T],X,[Y|R]) :- X<>Y, delall(T,X,R).
  19.  
  20. lcount([],[]).
  21. lcount([H|T],[[H,Z]|R]) :- counter([H|T],H,Z), delall(T,H,Q), lcount(Q,R).

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


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

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

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы