Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
##(link2sicp "book-Z-H-15.html#%_thm_2.49" "Exercise 2.49")
解答例
(define border
(let ((tl (make-vect 0.0 1.0))
(tr (make-vect 1.0 1.0))
(bl (make-vect 0.0 0.0))
(br (make-vect 1.0 0.0)))
(segments->painter
(list (make-segment bl br)
(make-segment br tr)
(make-segment tr tl)
(make-segment tl bl)))))
(define x-mark
(let ((tl (make-vect 0.0 1.0))
(tr (make-vect 1.0 1.0))
(bl (make-vect 0.0 0.0))
(br (make-vect 1.0 0.0)))
(segments->painter
(list (make-segment bl tr)
(make-segment tl br)))))
(define diamond
(let ((e (make-vect 1.0 0.5))
(n (make-vect 0.5 1.0))
(w (make-vect 0.0 0.5))
(s (make-vect 0.5 0.0)))
(segments->painter
(list (make-segment e n)
(make-segment n w)
(make-segment w s)
(make-segment s e)))))
(define wave
(let ((p01 (make-vect 0.40 1.00))
(p02 (make-vect 0.60 1.00))
(p03 (make-vect 0.00 0.80))
(p04 (make-vect 0.35 0.80))
(p05 (make-vect 0.65 0.80))
(p06 (make-vect 0.00 0.60))
(p07 (make-vect 0.30 0.60))
(p08 (make-vect 0.40 0.60))
(p09 (make-vect 0.60 0.60))
(p10 (make-vect 0.70 0.60))
(p11 (make-vect 0.20 0.55))
(p12 (make-vect 0.30 0.55))
(p13 (make-vect 0.35 0.50))
(p14 (make-vect 0.65 0.50))
(p15 (make-vect 0.20 0.45))
(p16 (make-vect 1.00 0.40))
(p17 (make-vect 0.50 0.20))
(p18 (make-vect 1.00 0.20))
(p19 (make-vect 0.25 0.00))
(p20 (make-vect 0.40 0.00))
(p21 (make-vect 0.60 0.00))
(p22 (make-vect 0.75 0.00)))
(segments->painter
(list (make-segment p01 p04)
(make-segment p04 p08)
(make-segment p08 p07)
(make-segment p07 p11)
(make-segment p11 p03)
(make-segment p06 p15)
(make-segment p15 p12)
(make-segment p12 p13)
(make-segment p13 p19)
(make-segment p20 p17)
(make-segment p17 p21)
(make-segment p22 p14)
(make-segment p14 p18)
(make-segment p16 p10)
(make-segment p10 p09)
(make-segment p09 p05)
(make-segment p05 p02)))))
コード
##(sicp-answer-code "ex-2.49.scm")