Gauche用L-systemライブラリ
(define-rule a->ab 'a '(a b))
(define-rule b->a 'b '(b))
(define test (make <G> :init '(a b) :rules `(,a->ab b->a)))
(step test 2)
(v-list->list (step test 2))
内部ではシンボルをのインスタンスに変換しているため,結果を表示するためには変換が必要.
(convert (step test 2)
`(a . ,(lambda (x) '(forward 10))
`(b . ,(lambda (x) '(turn 90)))
))
タートルグラフィックス等で使うために変換を行う.
- 変換するシンボルとオブジェクトを生成する手続きをペアで指定する.
- オブジェクトを生成する手続きはのインスタンスを受け取る.
シンボルをラップするクラス. 以下のスロットを持つ.
- symbol
- n
sample.scm参照.