Acalmar Nests Função em Lisp - precisa de ajuda para entender
Eu tenho tentado encontrar uma maneira de condensar listas aninhadas em números que voltam à lista original, mas estou tendo alguns problemas.
Eu estive olhando para a função flatten (que é tão amplamente disponível) que é dada aqui:
<code>(defun flatten (l) (cond ((null l) nil) ((atom l) (list l)) (t (loop for a in l appending (flatten a))))) </code>
Eu entendo este exemplo é recursão, mas como funciona? Ele verifica se o elemento é nulo ou um átomo, mas o que acontece se o elemento cair nessas condições?