0
私は別のプラットフォームでいくつかの問題があります。 これは私のコードです:MIT-スキームにLiitle Schemer第4ページ:103値関数
(value '(1 o+ 1)) => 2
:
(value '(1 o+ 1)) => ;Unspecified return value
なぜ鶏方式に
(define o+
(lambda (n m)
(cond
((zero? n) m)
(else (o+ (sub1 n) (add1 m))))))
(define value
(lambda (nexp)
(cond
((atom? nexp) nexp)
((eq? (car (cdr nexp)) 'o+)
(o+ (value (car nexp))
(value (car (cdr (cdr nexp))))))
((eq? (car (cdr nexp)) 'o-)
(o- (value (car nexp))
(value (car (cdr (cdr nexp))))))
((eq? (car (cdr nexp)) 'o*)
(o* (value (car nexp))
(value (car (cdr (cdr nexp))))))
((eq? (car (cdr nexp)) 'o/)
(o/ (value (car nexp))
(value (car (cdr (cdr nexp)))))))))
?それは私を混乱させます。
atom?非標準です。原子の定義は何ですか? MITでは? – user448810