besideとbelowの引数の順序がややこしいが、問題そのものは簡単だった。図形言語の仕組みはParsecを思わせる。
(load "../psets/go.scm")
(define (up-split painter n)
(if (= n 0)
painter
(let ((smaller (up-split painter (- n 1))))
(below painter
(beside smaller smaller)))))
(paint-g1 (up-split wave 4))