シンプルなスキーマ インタープリタを実装する本「The little schemer - 4th edition」の第 10 章を読んでいます。: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 (x) (+ x 1))
次の値を持ちます (環境を渡しますtable
):
(non-primitive (table (x) (+ x 1)))
これは、本の中でラムダ定義が , であることを意味しますatom
か?
そうだと思いますが、本に記載されている関係を見つけることができないので、よくわかりません.