オブジェクト指向を使ったグラフ作成プログラムの例

長方形(rectangle)、円(circle)、合成図形(composite)は、それぞれ図形(graphical-object)の子クラスになっている。
手続make-graphでは、棒や円を作り、等間隔で並べた合成図形を作り、 それをウィンドウの大きさに合うようにリサイズ(fit!)している。

(define (make-graph generator numbers)
  (let ((elements (generate-objects generator numbers))) ;; 棒や円を作る
    (align-objects (new cartesian 0 100) elements) ;; 等間隔に並べる
    (let ((c (new composite elements))) ;; 合成図形を作る
      (fit! c (new rectangle            ;; ウィンドウの大きさに合わせる
                   (new cartesian 2 2)
                   (new cartesian 300 200)))
      c)))