(load "2.7.txt") ; for make-interval and mul-interval ; This overwrites the old div-interval from 2.7 (define (div-interval x y) (let ((yl (lower-bound y)) (yu (upper-bound y))) (cond ((and (<= yl 0) (>= yu 0)) (error "division by interval including 0" y)) (else (mul-interval x (make-interval (/ 1.0 yu) (/ 1.0 yl))))))) ; 1 ]=> (div-interval (make-interval 1 3) (make-interval -1 -2)) ; ; ;Value: (-3. . -.5) ; ; 1 ]=> (div-interval (make-interval -1 1) (make-interval -1 -2)) ; ; ;Value: (-1. . 1.) ; ; 1 ]=> (div-interval (make-interval 1 3) (make-interval -1 1)) ; ; ;division by interval including 0 (-1 . 1)