A variável global a é uma célula cons, mas NÃO uma lista. Por que LISTP retorna T para ela?
* (defvar a (cons 1 2))
A
* a
(1 . 2)
* (listp a)
T
A variável global a é uma célula cons, mas NÃO uma lista. Por que LISTP retorna T para ela?
* (defvar a (cons 1 2))
A
* a
(1 . 2)
* (listp a)
T
Da CLHS
e a definição do tipo
list
é:Como
(1 . 2)
é umcons
, também é umlist
.Para eficiência,
listp
não tenta determinar se é uma lista adequada , que termina comNIL
. Não há nenhuma função padrão que faça isso. Veja Check for proper list em Common Lisp