Решение упражнения 2.10 из SICP

19 January, 2008 (21:14) | Решения упражнений

Просто введем проверку на то, что нижняя и верхняя границы интервала-делителя не равны нулю и одного знака. Самый краткий способ записать это - сравнить произведение границ интервала с нулем (в случае положительного результата деление на интервал допустимо). Процедура 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