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

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

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

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

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

textual
Листинг программы
  1. (defun pairs (lst)
  2.   (cond ((null (cdr lst)) nil)
  3.         (t (cons (list (car lst) (cadr lst)) (pairs (cdr lst))))))
  4.  
  5. ==> PAIRS
  6.  
  7. (pairs '(a b c d e))
  8.  
  9. ==> ((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

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

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

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