Написать функцию, которая по списку строит сложный список - Lisp

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

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

Нужно написать функцию, которая по списку ‘(a1 a2…aN) строит сложный список ((a1 a2) (a2 a3) …).

Решение задачи: «Написать функцию, которая по списку строит сложный список»

textual
Листинг программы
(defun pairs (lst)
  (cond ((null (cdr lst)) nil)
        (t (cons (list (car lst) (cadr lst)) (pairs (cdr lst))))))
 
==> PAIRS
 
(pairs '(a b c d e))
 
==> ((A B) (B C) (C D) (D E))

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

В коде определена функция PAIRS, которая принимает в качестве аргумента список lst. Если список пуст, то возвращается nil. В противном случае создается новый список, содержащий пару элементов: первый элемент - это car списка, второй - cadr списка. Затем функция рекурсивно вызывается для оставшейся части списка (cdr lst). В результате получается список пар, которые являются отдельными списками. Пример использования функции: (pairs '(a b c d e)) Результат выполнения: ((A B) (B C) (C D) (D E))

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


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

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

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