Найти первый отличный от NIL атом в произвольном списке - Lisp

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

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

Помогите найти первый отличный от NIL атом в произвольном списке (общей рекурсией) ((() A) B C) –> A Сделал без рекурсии, а вот с рекурсией все не получается никак

Решение задачи: «Найти первый отличный от NIL атом в произвольном списке»

textual
Листинг программы
  1. (defun first-atom (lst)
  2.   (cond ((null lst) nil)
  3.         ((atom (car lst)) (if (car lst) (car lst) (first-atom (cdr lst))))
  4.         (t (let ((a1 (first-atom (car lst)))
  5.                  (a2 (first-atom (cdr lst))))
  6.              (if a1 a1 a2)))))
  7.  
  8. ==> FIRST-ATOM
  9.  
  10. (first-atom '((a b) c))
  11.  
  12. ==> A
  13.  
  14. (first-atom '((nil a b) c))
  15.  
  16. ==> A
  17.  
  18. (first-atom '((nil) c))
  19.  
  20. ==> C

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

15   голосов , оценка 4.067 из 5

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

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

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