Удалить из списка повторяющиеся элементы - Prolog

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

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

Удалить из списка повторяющиеся элементы.
Листинг программы
  1. domains
  2. list = real*
  3. predicates
  4. nondeterm read_list(integer, list)
  5. nondeterm result
  6. clauses
  7. read_list(0,[]).
  8. read_list(N,[H|T]):-readreal(H),N1=N-1, read_list(N1,T).
  9. result:-write("Enter the number of elements"),nl,
  10. write("N = "),readint(N),
  11. write("Enter the elements: "),nl,
  12. read_list(N,L),
  13. write("List = "),
  14. write(L),nl.
  15. goal
  16. result.
Заранее благодарю!

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

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. del_elt(int,intl,intl)
  7. uniq(intl,intl)
  8. read_list(intl)
  9. task
  10.  
  11. clauses
  12. del_elt(_,[],[]).
  13. del_elt(X,[X|T],R) :- del_elt(X,T,R).
  14. del_elt(X,[Y|T],[Y|R]) :-  X<>Y,del_elt(X,T,R).
  15.  
  16. uniq([],[]).
  17. uniq([X|T],[X|R]) :- del_elt(X,T,Y), uniq(Y,R).
  18.  
  19. read_list([H|T]) :- readint(H),!,read_list(T).
  20. read_list([]).
  21.  
  22. task :- write("Enter any list:"),nl,read_list(H),uniq(H,U),write("List of uniq values: "),nl,write(U),nl.
  23.  
  24. goal
  25. task.

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


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

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

11   голосов , оценка 4.182 из 5

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

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

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