2.1.4 拡張問題:区間算術演算(2)

仕様変更に伴い、区間オブジェクトのコンストラクターを書き替えます。中央値を相対許容誤差を引数とする手続きと、区間オブジェクトから、中央値と相対許容誤差を取得するための手続きです。(問題2-12)

(define (make-center-percent c p)
  (define per-handred (/ p 100))
  (make-interval (* c (- 1 per-handred))
                 (* c (+ 1 per-handred))))

(define (center i)
  (/ (+ (lower-bound i) (upper-bound i)) 2))

(define (percent i)
  (* (/ (abs (- (upper-bound i) (center i)))
        (center i))
     100))

この後の問題については、すぐに解答が思いつかなかったので、今日はこれで終わりにします。