#lang sicp (#%require sicp-pict) (define (corner-split painter n) (if (= n 0) painter (let ((smaller-r (right-split painter (- n 1))) (smaller-u (up-split painter (- n 1))) (smaller-c (corner-split painter (- n 1)))) (below (beside painter (below smaller-r smaller-r)) (beside (beside smaller-u smaller-u) smaller-c))))) (define (split main-dir side-dir) (define (split-function painter n) (if (= n 0) painter (let ((smaller (split-function painter (- n 1)))) (main-dir painter (side-dir smaller smaller))))) split-function) (define up-split (split below beside)) (define right-split (split beside below))