2014年4月11日金曜日

開発環境

計算機プログラムの構造と解釈(Gerald Jay Sussman(原著)、Julie Sussman(原著)、Harold Abelson(原著)、和田 英一(翻訳)、ピアソンエデュケーション、原書: Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)(SICP))の2(データによる抽象の構築)、2.2(階層データ構造と閉包性)、2.2.4(例: 図形言語)、高階演算、問題 2.45.を解いてみる。

その他参考書籍

問題 2.45.

コード(BBEdit, Emacs)

sample.rkt

;;#lang racket
(require (planet "sicp.ss" ("soegaard" "sicp.plt" 2 1)))

(define (split proc1 proc2)
  (lambda (painter n)
    (if (= n 0)
        painter
        (let ((smaller ((split proc1 proc2) painter (- n 1))))
          (proc1 painter (proc2 smaller smaller))))))

(define right-split (split beside below))

(define up-split (split below beside))

(paint (right-split diagonal-shading 4))
(paint (right-split einstein 4))
(paint (up-split diagonal-shading 4))
(paint (up-split einstein 4))

入出力結果(生成された画像)

0 コメント:

コメントを投稿