;;;;;;;;;;;;;;;;;; ;;; ps4-ans.ss ;;; ;;;;;;;;;;;;;;;;;; ;;; Henderson picture language adapted to DrScheme ;;; Uses MzScheme module system for some loading and renaming ;;; ;;; Use language "Textual (MzScheme, includes R5RS)" in DrScheme (require "primitives.ss") (require (lib "include.ss")) (include "mit-macros.scm") (include "mit-support.scm") (include "hutils.scm") (include "prmpnt.scm") (include "hend.scm") ;;; recursive complex means of combination (from book) (define (right-split painter n) (if (= n 0) painter (let ((smaller (right-split painter (- n 1)))) (beside painter (below smaller smaller))))) ;;; up-split left as an exercise... (define (up-split painter n) (error "up-split left as exercise")) (define (corner-split painter n) (if (= n 0) painter (let ((up (up-split painter (- n 1))) (right (right-split painter (- n 1)))) (let ((top-left (beside up up)) (bottom-right (below right right)) (corner (corner-split painter (- n 1)))) (beside (below painter top-left) (below bottom-right corner)))))) (define (square-limit painter n) (let ((quarter (corner-split painter n))) (let ((half (beside (flip-horiz quarter) quarter))) (below (flip-vert half) half)))) ;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Your answers here ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;