summaryrefslogtreecommitdiff
path: root/coding-exercises/2/50.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'coding-exercises/2/50.rkt')
-rw-r--r--coding-exercises/2/50.rkt33
1 files changed, 33 insertions, 0 deletions
diff --git a/coding-exercises/2/50.rkt b/coding-exercises/2/50.rkt
new file mode 100644
index 0000000..373e22a
--- /dev/null
+++ b/coding-exercises/2/50.rkt
@@ -0,0 +1,33 @@
+#lang racket
+(require "../../shared/pict.rkt")
+(require "../../shared/lists.rkt")
+(require sicp-pict)
+
+(define (flip-horiz painter)
+ (transform-painter
+ painter
+ (make-vect 1 0)
+ (make-vect 0 0)
+ (make-vect 1 1)))
+
+(define (flip-vert painter)
+ (transform-painter
+ painter
+ (make-vect 0 1)
+ (make-vect 1 1)
+ (make-vect 0 0)))
+
+(define (<-rotate180 painter)
+ (flip-horiz (flip-vert painter)))
+(define (<-rotate270 painter)
+ (transform-painter
+ painter
+ (make-vect 0 1)
+ (make-vect 0 0)
+ (make-vect 1 1)))
+
+(paint einstein)
+(paint (flip-horiz einstein))
+(paint (flip-vert einstein))
+(paint (<-rotate180 einstein))
+(paint (<-rotate270 einstein))