Определить процедуру, которая отбрасывает в списке заданное количество последних элементов - Prolog

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

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

Определить процедуру, которая отбрасывает в списке заданное количество последних элементов.

Решение задачи: «Определить процедуру, которая отбрасывает в списке заданное количество последних элементов»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. len(intl,int)
  7. subl(intl,int,intl)
  8. task(intl,int,intl)
  9.  
  10. clauses
  11. len([],0).
  12. len([_|T],N) :- len(T,N1), N=N1+1.
  13.  
  14. subl(_,0,[]).
  15. subl([H|T],N,[H|R]) :- N1=N-1, subl(T,N1,R).
  16.  
  17. task(X,N,Y) :- len(X,LX), LX>N, M=LX-N, subl(X,M,Y).
  18. task(X,N,[]) :- len(X,LX), LX<=N.

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

  1. В коде используется язык программирования Prolog.
  2. Код определяет три процедуры:
    • len(intl,int) - определяет длину списка intl и возвращает значение в переменной int.
    • subl(intl,int,intl) - удаляет из списка intl первые int элементов и возвращает новый список в переменной intl.
    • task(intl,int,intl) - реализует задачу: отбрасывает в списке заданное количество последних элементов и возвращает новый список в переменной intl.
  3. В предположении, что входной список X имеет длину LX, процедура task выполняется следующим образом:
    • Если LX больше N, то из списка X удаляются последние M элементов (где M=LX-N), и результат сохраняется в переменной Y.
    • Если LX меньше или равно N, то в переменной Y остается пустой список [].

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


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

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

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

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

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

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