2.1.2抽象の壁、問題2.2 – SICP(計算機プログラムの構造と解釈)その26
2008年11月30日
2.1.2 抽象の壁
問題2.2
線のデータ抽象
(define (make-segment start end)
(cons start end))
(define (start-segment segment)
(car segment))
(define (end-segment segment)
(cdr segment))
点のデータ抽象
(define (make-point x y)
(cons x y))
(define (x-point p)
(car p))
(define (y-point p)
(cdr p))
中間点を返す手続き
(define (midpoint-segment segment)
(let ((start (start-segment segment))
(end (end-segment segment)))
(make-point (average (x-point start) (x-point end))
(average (y-point start) (y-point end)))))
; 点の印字 例:(2.0,3.0)
(define (print-point p)
(newline)
(display "(")
(display (x-point p))
(display ",")
(display (y-point p))
(display ")"))
; 始発点
(define start-point (make-point 1 2))
; 終着点
(define end-point (make-point 4 8))
; 線分seg
(define seg (make-segment start-point end-point))
; 線分segの中間点
(print-point (midpoint-segment seg))
gosh>
(2.5,5.0)#<undef>
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542