Я пытаюсь написать небольшую рекурсивную программу, которая проверяет список и возвращает t , если каждый элемент равен атом. У меня проблема в том, что когда функция получает пустой список, она возвращает t вместо желаемого результата nil . Я не могу придумать способ, чтобы он возвращал nil для изначально пустого списка и по-прежнему работал правильно рекурсивным образом.
(defun only-atoms (in)
(if (null in)
t
(and (atom (first in)) (only-atoms (cdr in)) )
)
)