diff options
| author | Mike Vink <mike1994vink@gmail.com> | 2023-03-18 22:12:42 +0100 |
|---|---|---|
| committer | Mike Vink <mike1994vink@gmail.com> | 2023-03-18 22:12:42 +0100 |
| commit | 53bdf776c4f426a92953d2afa76c1f9ee008c02c (patch) | |
| tree | aeab74e2bb211e14d2beace60116108937cb4ac7 | |
| parent | 3a4f2b08233e6c7466b70a6807a158945184899a (diff) | |
start with pict language
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | coding-exercises/2/44.rkt | 29 |
2 files changed, 29 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b25c15b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/coding-exercises/2/44.rkt b/coding-exercises/2/44.rkt index ae76481..9381ac9 100644 --- a/coding-exercises/2/44.rkt +++ b/coding-exercises/2/44.rkt @@ -1,2 +1,29 @@ #lang racket -(require sicp-pic) +(require sicp-pict) + +(define wave2 (beside einstein (flip-vert einstein))) +(define wave4 (below wave2 wave2)) + +(define (right-split painter n) + (if (= n 0) + painter + (let ((smaller (right-split painter (- n 1)))) + (beside smaller (below smaller smaller))))) + +(define (up-split painter n) + (if (= n 0) + painter + (let ((smaller (up-split painter (- n 1)))) + (below smaller (beside smaller smaller))))) + +(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)))))) +(paint (corner-split einstein 4)) |
