exercise 3.34
multiplierは三つのconnectorのうち二つが確定してれば、もう一つを確定させる。
ということで、
(define (squarer a b) (multiplier a a b))
なんてやると、
bが決まってもaが決まらなくなってしまう。
ちなみにaが決まるとbは決まる
gosh> (define a (make-connector)) a gosh> (define b (make-connector)) b gosh> (probe 'a a) #<closure (probe me)> gosh> (probe 'b b) #<closure (probe me)> gosh> (squarer a b) #<closure (multiplier me)> gosh> (set-value! a 10 'k0ncha) Probe: b = 100 Probe: a = 10 done gosh> (forget-value! a 'k0ncha) Probe: b = ? Probe: a = ? done gosh> (set-value! b 25 'k0ncha) Probe: b = 25 done