SICP 2.8
自信なし。そもそも区間の引き算ってどういう意味だろう。
(define make-interval cons) (define upper-bound car) (define lower-bound cdr) (define (sub-interval x y) (make-interval (- (upper-bound x) (upper-bound y)) (- (lower-bound x) (lower-bound y)))) ; test (let ((p1 (make-interval 1.1 2.5)) (p2 (make-interval 4.1 3.2))) (let ((p3 (sub-interval p1 p2))) (print (upper-bound p3)) (print (lower-bound p3))))
↑これじゃダメらしい。やっぱり引き算の定義が間違ってる。
(define (sub-interval x y) (make-interval (- (lower-bound x) (upper-bound y)) (upper-bound x) (lower-bound y))))