Переставить первый и последний элемент местами - Lisp
Формулировка задачи:
Определить функцию, которая в заданном списке переставляет первый и последний элементы местами.
Решение задачи: «Переставить первый и последний элемент местами»
textual
Листинг программы
(defun task (lst) (append (last lst) (butlast (cdr lst)) (list (car lst)))) ==> TASK (task '(1 2 3 4 5)) ==> (5 2 3 4 1)
Объяснение кода листинга программы
В коде определена функция task
, которая принимает в качестве аргумента список lst
.
Функция выполняет следующие шаги:
last lst
— возвращает последний элемент спискаlst
.butlast (cdr lst)
— возвращает список, полученный изlst
, исключив из него последний элемент.list (car lst)
— возвращает список, полученный изlst
, включив в него первый элемент. Затем, с помощью функцииappend
, полученные списки объединяются в один, в котором первый и последний элементы спискаlst
поменяны местами. При вызове функцииtask
с аргументом'(1 2 3 4 5)
, она вернет результат(5 2 3 4 1)
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д