#lang sicp (#%require sicp-pict) (define ein2 (beside einstein (flip-vert einstein))) (define ein4 (below ein2 ein2)) (define (right-split painter n) (if (= n 0) painter (let ((right-split-1 (right-split painter (- n 1)))) (beside painter (below right-split-1 right-split-1))))) (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))))) ; the actual exercise: (define (up-split painter n) (if (= n 0) painter (let ((smaller (up-split painter (- n 1)))) (below painter (beside smaller smaller)))))