Estou analisando The Little Schemer no ChezScheme e no capítulo 2 resolvo o seguinte problema. Eu escrevo a definição de lat? de acordo com o livro.
(define lat?
(lambda (l)
(cond
((null? l) #t)
((atom? (car l)) (lat? (cdr l)))
(else #f)
)
)
)
Em seguida, defina uma lista
(define l '('bacon 'and 'eggs))
e então
(lat? l)
avalia como #f
.
Parece que a questão é que enquanto (car l)
avalia 'bacon
e atom? 'bacon
avalia para #t
, (atom? (car l))
avalia para #f
.