SICP 問題2.8

2017/10/15

Alyssaと似たような推論をして, 二つの区間の差の計算法を書け. それに対応する sub-intervalという減算手続きを定義せよ.

何も考えずに答えるのでれば、和の計算と同じように、下限-下限と上限-上限っぽい。でも果たしてそれであってるのか? そもそも区間の差ってなんだろう?

あー、なんとなくわかったかも。Alyssaは和の計算のところで

彼女は和の最小値は二つの下限の和であり, 最大値は二つの上限の和であると考えた.

と言っているので、「区間の差とは?」みたいなのうんぬんかんぬんとか抜きにして、区間オブジェクトの car は最小の値で、 cdr は最大の値になるようにするには?みたいなのを考えればよいのか。

となると、2つの区間がそれぞれ与えられたときに、それぞれの両端の値を使って、最小の値を叩き出すには、片方の区間の最小値から、もう片方の区間の最大値を引けば良いのかな。cdr はその逆。

(define (sub-interval x y)
  (make-interval (- (lower-bound x) (upper-bound y))
                 (- (upper-bound x) (lower-bound y))))