SICP 习题2.7 实现区间的lower-bound 和 upper-bound

来源:互联网 发布:网络运营商 编辑:程序博客网 时间:2024/06/15 10:09

lower-bound 就是 car

upper-bound 就是 cdr

make-interval 需要保证lower-bound 小于 upper-bound

(define (add-interval x y)  (make-interval (+ (lower-bound x) (lower-bound y))         (+ (upper-bound x) (upper-bound y))))(define (mul-interval x y)  (let ((p1 (* (lower-bound x) (lower-bound y)))    (p2 (* (lower-bound x) (upper-bound y)))    (p3 (* (upper-bound x) (lower-bound y)))    (p4 (* (upper-bound x) (upper-bound y))))    (make-interval (min p1 p2 p3 p4)           (max p1 p2 p3 p4))))(define (div-interval x y)  (mul-interval x         (make-interval (/ 1.0 (lower-bound y))                   (/ 1.0 (upper-bound y)))))(define make-interval cons)(define lower-bound car)(define upper-bound cdr)(define print-interval  (lambda (z)    (newline)    (display (lower-bound z))    (display " ~ ")    (display (upper-bound z))))(define a (make-interval 1 2))(define b (make-interval 3 4))(print-interval (add-interval a b))(print-interval (mul-interval a b))(print-interval (div-interval a b))
0 0
原创粉丝点击