Найти первый отличный от NIL атом в произвольном списке - Lisp
Формулировка задачи:
Помогите найти первый отличный от NIL атом в произвольном списке (общей рекурсией)
((() A) B C) –> A
Сделал без рекурсии, а вот с рекурсией все не получается никак
Решение задачи: «Найти первый отличный от NIL атом в произвольном списке»
textual
Листинг программы
- (defun first-atom (lst)
- (cond ((null lst) nil)
- ((atom (car lst)) (if (car lst) (car lst) (first-atom (cdr lst))))
- (t (let ((a1 (first-atom (car lst)))
- (a2 (first-atom (cdr lst))))
- (if a1 a1 a2)))))
- ==> FIRST-ATOM
- (first-atom '((a b) c))
- ==> A
- (first-atom '((nil a b) c))
- ==> A
- (first-atom '((nil) c))
- ==> C
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д