Определить функцию, разбивающую список на пары - LISP

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

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

Помогите, пожалуйста! Определить функцию, разбивающую список (a b c d …) на пары ((a b) (c d) … )

Решение задачи: «Определить функцию, разбивающую список на пары - LISP»

textual
Листинг программы
(defun mkpairs (lst)
   (cond ((null (cdr lst) lst)
            (t (cons (list (car lst) (cadr lst)) (mkpairs (cddr lst))))))

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

В данном коде определена функция mkpairs, которая принимает в качестве аргумента список lst. Функция использует условную конструкцию cond, чтобы проверить, является ли список пустым. Если это так, то возвращается пустой список. В противном случае, функция cons добавляется новый элемент в список пар, а затем функция вызывается рекурсивно для оставшейся части списка. Таким образом, функция mkpairs разбивает список на пары и возвращает список пар.

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

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