Обратить список и все его подсписки на любом уровне - Lisp
Формулировка задачи:
1. Определите функцию, обращающую список и все его подсписки
на любом уровне, например, (a b (c d) e) -> (e (d c) b a).
Я пользуюсь HomeLisp, не могли бы написать, я не понимаю.
Решение задачи: «Обратить список и все его подсписки на любом уровне»
textual
Листинг программы
(defun rev-all (lst &optional (r nil)) (cond ((null lst) r) ((listp (car lst)) (rev-all (cdr lst) (cons (rev-all (car lst)) r))) (t (rev-all (cdr lst) (cons (car lst) r))))) ==> REV-ALL (rev-all '(a b (c d) e)) ==> (E (D C) B A)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д