SICP 問題 2.48(有向線分の構成子、選択子を定義する)
問題
平面上の有向線分はベクタの対 ─原点から線分の始点へ向かうベクタと、始点から線分の終点へ向かうベクタ─ で表現できる。問題 2.46 のベクタ表現を使い、この線分の表現を構成子 make-segment と選択子 start-segment 及び end-segment として定義せよ。
解答
問題 2.46 のベクタ表現は、ベクタの要素を x, y とした場合、それらを cons を使って連結しておくだけ。で、今回の有向線分はベクタを使って始点と終点を持つわけだから、これでいいんでない?
;構成子 (define (make-segment start end) (cons start end)) ;start-segment選択子 (define (start-segment segment) (car segment)) ;end-segment選択子 (define (end-segment segment) (cdr segment))
以上。