発展問題:区間演算の1問目。
区間の抽象化の実装を規定しなかったので, Alyssaのプログラムは不完全である. 区間構成子は:
(define (make-interval a b) (cons a b))
である. 実装を完成させるため, 選択子 upper-bound と lower-bound を定義せよ.
ここではめんどくさいので省略してあるが、この問題文よりも前にもっと説明がたくさんある。
要は upper-bound
は与えられる区間の上限を返して、 lower-bound
は下限を返せばよさそう。
パット見、make-interval
の car
が下限で、 cdr
が上限っぽいので、それをそのまま書くのであれば、それだけでおしまい。ただし carが下限
みたいな制約をmake-interval
に加えてあるわけではないので、なんとも言えない。そこらへんもちゃんとみるのであればどちらも取得して、 min
と max
あたりを使えば良さそう。
(define (upper-bound x)
(max (car x) (cdr x)))
(define (lower-bound x)
(min (car x) (cdr x)))
こんな感じでしょ。
※追記
回答例見たら、car
と cdr
返してるだけだった。