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?

questionAnswers(3)

yourAnswerToTheQuestion