SICP 問題 2.8(区間オブジェクトの減算演算を定義)

【問題】

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

【解答】

減算される側の上限値から減算する側の下限値を引いたものが最大値に、
減算される側の下限値から減算する側の上限値を引いたものが最小値になる。

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

試しに実行してみよう。


gosh> (define i1 (make-interval 1 2))
i0
gosh> i0
(1 . 2)
gosh> (define i1 (make-interval -2 4))
i1
gosh> i1
(-2 . 4)
gosh> (sub-interval i0 i1)
(-3 . 4)
gosh>
おっけ〜。