Пронумеровать список - Prolog

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

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

Нужна процедурка, которая формирует новый список, элементами которого являются составные структуры: число списка и его порядковый номер, то есть нужно пронумеровать список.

Решение задачи: «Пронумеровать список»

textual
Листинг программы
domains
int=integer
intl=int*
intll=intl*
 
predicates
num_list(intl,int,intll)
 
clauses
num_list([],_,[]).
num_list([H|T],N,[[N,H]|R]) :- N1=N+1, num_list(T,N1,R).

Объяснение кода листинга программы

  1. domains - определения типов данных
  2. predicates - определение predicator (предикат) функции
  3. clauses - определение правил (условий) для функции
  4. num_list([],_,[]). - базовый случай, когда список пуст
  5. num_list([H|T],N,[[N,H]| R]) :- N1=N+1, num_list(T,N1,R). - рекурсивный случай, когда список не пуст
  6. N1=N+1 - увеличение номера элемента списка
  7. num_list(T,N1,R) - рекурсивный вызов функции с новыми параметрами
  8. [[N,H]| R] - формирование нового элемента списка с номером и значением
  9. R - результат рекурсивного вызова функции
  10. [H| T] - разбиение списка на голову и хвост
  11. num_list([],_,[]). - базовый случай, когда список пуст
  12. num_list([H| T],N,[[N,H]| R]) :- N1=N+1, num_list(T,N1,R). - рекурсивный случай, когда список не пуст
  13. N1=N+1 - увеличение номера элемента списка
  14. num_list(T,N1,R) - рекурсивный вызов функции с новыми параметрами
  15. [[N,H]| R] - формирование нового элемента списка с номером и значением
  16. R - результат рекурсивного вызова функции
  17. [H| T] - разбиение списка на голову и хвост
  18. num_list([],_,[]). - базовый случай, когда список пуст
  19. num_list([H| T],N,[[N,H]| R]) :- N1=N+1, num_list(T,N1,R). - рекурсивный случай, когда список не пуст
  20. N1=N+1 - увеличение номера элемента списка
  21. num_list(T,N1,R) - рекурсивный вызов функции с новыми параметрами
  22. [[N,H]| R] - формирование нового элемента списка с номером и значением
  23. R - результат рекурсивного вызова функции
  24. [H| T] - разбиение списка на голову и хвост

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


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

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

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