Aplanar la función de nidos en Lisp - necesita ayuda para entender
He estado tratando de encontrar una manera de condensar las listas anidadas en números que se remontan a la lista original, pero tengo algunos problemas.
He estado viendo la función de aplanar (que está tan disponible) que se da aquí:
<code>(defun flatten (l) (cond ((null l) nil) ((atom l) (list l)) (t (loop for a in l appending (flatten a))))) </code>
Entiendo que este ejemplo es una recursión, pero ¿cómo funciona? Verifica si el elemento es nulo o un átomo, pero ¿qué hace si el elemento cae en estas condiciones?