exercise 3.37
解答自体は簡単。注釈の部分が興味深い気がする。
まぁそれはさておきコード晒すか
(define (celsius-fahrenheit-converter x) (c+ (c* (c/ (cv 9) (cv 5)) x) (cv 32))) (define (c+ x y) (let ((z (make-connector))) (adder x y z) z)) (define (c* x y) (let ((z (make-connector))) (multiplier x y z) z)) (define (c- x y) (let ((z (make-connector))) (adder y z x) z)) (define (c/ x y) (let ((z (make-connector))) (multiplier y z x) z)) (define (cv x) (let ((z (make-connector))) (constant x z) z)) (define C (make-connector)) (define F (celsius-fahrenheit-converter C)) (probe 'C C) (probe 'F F)
実行結果は
gosh> (set-value! C 25 'k0ncha) Probe: C = 25 Probe: F = 77 done
しかしなんだ、constantの引数の順番をよく間違う。
せっかくeldocだかなんだか入れてるってのに。