No SBCL REPL, por que entrar é '(nil . nil)
avaliado como (nil)
e não apenas nil
?
Se uma lista vazia é aquela onde ambos os "elementos" da célula cons estão nil
, por que eles não são iguais?
Minha suposição para isso é que a SBCL faz as seguintes avaliações:
(car '()) => nil
(cdr '()) => nil
(car '(nil . nil)) => nil
(cdr '(nil . nil)) => nil
E ainda:
'() => nil
'(nil . nil) => (nil)