我正在阅读“The little schemer - 4th edition”一书的第 10 章,它实现了一个简单的 schemer 解释器。:atom?
除了第188页中的功能外,所有其他内容对我来说都很好:
(define :atom?
(lambda (x)
(cond
((atom? x) #t)
((null? x) #f)
((eq? (car x) (quote primitive)) #t)
((eq? (car x) (quote non-primitive) #t)
(else #f)))))
我不清楚这一行:
((eq? (car x) (quote non-primitive) #t)
在本书的前面,non-primitive
对应于一个 lambda 定义。
(lambda (x) (+ x 1))
具有(通过环境table
)的值:
(non-primitive (table (x) (+ x 1)))
这是否意味着 lambda 定义是atom
书中的 , ?
我想这是但不太确定,因为我在书中找不到他们的关系。