SICP (《計算機程序的構造與解釋》) 習題 2.8:已知區間加法 add-interval,實現區間減法 sub-interval。
區間 [low, high] 由下界和上界構成:
(define (add-interval x y)
(make-interval (+ (lower-bound x) (lower-bound y))
(+ (upper-bound x) (upper-bound y))))
減法是加法的逆運算:[a,b] - [c,d] = [a-d, b-c]。即下界減去對方上界,上界減去對方下界。
(define i1 (make-interval 10 20)) ; [10,20] (define i2 (make-interval 3 7)) ; [3,7] (sub-interval i1 i2) ; → [10-7, 20-3] = [3,17] ; 意義:i1 中任意值減去 i2 中任意值,結果範圍為 [3,17]
本題極簡單,僅為熟悉區間算術抽象。關鍵理解:區間運算結果為所有可能組合的值域包絡。