Open Source WEB

##(link2sicp "book-Z-H-14.html#%_thm_2.2" "Exercise 2.2")

解答例

(define (make-segment start end) (cons start end))
(define (start-segment p) (car p))
(define (end-segment p) (cdr p))

(define (make-point x y) (cons x y))
(define (x-point p) (car p))
(define (y-point p) (cdr p))

(define (midpoint-segment seg)
  (let ((sp (start-segment seg))
        (ep (end-segment seg)))
    (make-point (/ (+ (x-point sp) (x-point ep)) 2)
                (/ (+ (y-point sp) (y-point ep)) 2))))

実行例

gosh> (define p1 (make-point 1.0 0.0))
p1
gosh> (define p2 (make-point 0.0 1.0))
p2
gosh> (define seg1 (make-sebment p1 p2))
seg1
gosh> (define p3 (midpoint-segemt seg1))
p3
gosh> (print-point p3)

(0.5,0.5)#<undef>

コード

##(sicp-answer-code "ex-2.2.scm")

このサイトは、 IPA の「平成15年度オープンソフトウエア活用基盤整備事業」 の委託事業として開発されたKahuaで試験的に運用しております。

Copyright (c) 2004-2007 株式会社タイムインターメディア About Us