diff --git a/chapter2/2.10.scm b/chapter2/2.10.scm index 7c519ea..fc56272 100644 --- a/chapter2/2.10.scm +++ b/chapter2/2.10.scm @@ -17,9 +17,9 @@ (max p1 p2 p3 p4)))) (define (div-interval x y) - (if (= (upper-bound y) - (lower-bound y)) - (error "Division by zero") - (mul-interval x - (make-interval (/ 1.0 (upper-bound y)) - (/ 1.0 (lower-bound y)))))) + (if (> (* (lower-bound y) + (upper-bound y)) 0) + (mul-interval x + (make-interval (/ 1.0 (upper-bound y)) + (/ 1.0 (lower-bound y)))) + (error "Division by an interval spanning zero")))