Задача lisp
Формулировка задачи:
дан список lst. Если первый элемент является списком, то вывести новый список, первый элемент которого будет хвост lst, а второй головой. Иначе вывести список lst из которого удалён второй элемент.
Пример 1: (A B (6 4) G R) результат: (((6 4) G R) (A B));
Пример 2: (F (6 4) G R) результат: (F G R).
Помогите пожалуйста решить
Решение задачи: «Задача lisp»
textual
Листинг программы
(defun transform (lst) (if (listp (first lst)) (list (rest lst) (first lst)) (cons (first lst) (cddr lst)))) TRANSFORM [12]> (transform '((a b) (6 4) g r)) (((6 4) G R) (A B)) [13]> (transform '(f (6 4) g r))
Объяснение кода листинга программы
В данном коде определена функция TRANSFORM, которая принимает на вход список lst. Если первый элемент списка является списком, то функция возвращает список, содержащий второй элемент исходного списка и первый элемент, выделенный в отдельный список. В противном случае функция возвращает список, содержащий первый элемент исходного списка и список, полученный без первого элемента. Примеры использования функции: [12]> (transform '((a b) (6 4) g r)) (((6 4) G R) (A B)) [13]> (transform '(f (6 4) g r))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д