SICP 問題 2.7(区間オブジェクトの選択子を定義する)

【問題】

区間の抽象化の実装を規定しなかったので、Alyssa のプログラムは不完全である。
区間構成子は、

(define (make-interval a b)
  (cons a b))

である。
実装を完成させるため、選択子 upper-bound、lower-bound を定義せよ。

【解答】

これは普通に car と cdr を使うだけっすね。
一応自分の中の定義としては、【問題】で定義されている make-interval の引数は、


下限値:a
上限値:b
という解釈をすることにする。そうすると、lower-bound、upper-bound はそれぞれ、

;下限値
(define (lower-bound x)
  (car x))

;上限値
(define (upper-bound x)
  (cdr x))

こんな風に定義できる。一応実験。


gosh> (define i0 (make-interval 6.12 7.48))
i0
gosh> (lower-bound i0)
6.12
gosh> (upper-bound i0)
7.48
gosh>
OKっすね。