我正在阅读 ChezScheme 中的《小阴谋家》,在第 2 章中我遇到了以下问题。我写了lat的定义?根据书上的说法。
(define lat?
(lambda (l)
(cond
((null? l) #t)
((atom? (car l)) (lat? (cdr l)))
(else #f)
)
)
)
然后定义一个列表
(define l '('bacon 'and 'eggs))
进而
(lat? l)
评估为#f
.
问题似乎在于,虽然(car l)
评估为'bacon
并atom? 'bacon
评估为#t
,(atom? (car l))
但评估为#f
。