Решение упражнения 2.10 из SICP
Просто введем проверку на то, что нижняя и верхняя границы интервала-делителя не равны нулю и одного знака. Самый краткий способ записать это - сравнить произведение границ интервала с нулем (в случае положительного результата деление на интервал допустимо). Процедура div-interval с проверкой выглядит так:
(define (div-interval x y)
(if (<= (* (lower-bound y) (upper-bound y)) 0)
(error "Division by interval that spans zero" y)
(mul-interval x
(make-interval (/ 1.0 (upper-bound y))
(/ 1.0 (lower-bound y))))))
Write a comment