Задача 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))

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


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

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

14   голосов , оценка 3.643 из 5