Максимальные элементы во вложенных списках - Lisp
Формулировка задачи:
Нужна функция, которая будет искать и выводить максимум на каждом уровне списка (то есть каждый вложенный список должен как-то обрабатываться).
Нагуглил такую функцию, но она ищет максимум на всех уровнях сразу, а не на каждом в отдельности:
Среда: muLISP
(defun F (L)
(if L
((lambda (elem result)
(cond
((null result) elem)
((> elem result) elem)
(T result)))
((lambda (elem)
(if (atom elem) elem (F elem)))
(car L))
(F (cdr L)))))Решение задачи: «Максимальные элементы во вложенных списках»
textual
Листинг программы
$(rds common) COMMON $TASK $ Undefined Function Break: (LET ((NL (REMOVE-IF (QUOTE LISTP) LST)) (LL ( REMOVE-IF (QUOTE NUMBERP) LST)) (R NIL)) (DOLIST (I LL R) (SETQ R (APPEND R ( TASK I)))) (IF NL (APPEND (LIST (APPLY (QUOTE MAX) NL)) R) R)) Continue, Break, Abort, Top-level, Restart, System?