summaryrefslogtreecommitdiff
path: root/coding-exercises/2
diff options
context:
space:
mode:
authorMike Vink <mike1994vink@gmail.com>2023-03-18 22:12:42 +0100
committerMike Vink <mike1994vink@gmail.com>2023-03-18 22:12:42 +0100
commit53bdf776c4f426a92953d2afa76c1f9ee008c02c (patch)
treeaeab74e2bb211e14d2beace60116108937cb4ac7 /coding-exercises/2
parent3a4f2b08233e6c7466b70a6807a158945184899a (diff)
start with pict language
Diffstat (limited to 'coding-exercises/2')
-rw-r--r--coding-exercises/2/44.rkt29
1 files changed, 28 insertions, 1 deletions
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))