#reader(lib"read.ss""wxme")WXME0108 ## #| This file uses the GRacket editor format. Open this file in DrRacket version 5.0 or later to read it. Most likely, it was created by saving a program in DrRacket, and it probably contains a program with non-text elements (such as images or comment boxes). http://racket-lang.org/ |# 28 7 #"wxtext\0" 3 1 6 #"wxtab\0" 1 1 8 #"wxmedia\0" 4 1 8 #"wximage\0" 2 0 34 #"(lib \"syntax-browser.ss\" \"mrlib\")\0" 1 0 16 #"drscheme:number\0" 3 0 44 #"(lib \"number-snip.ss\" \"drscheme\" \"private\")\0" 1 0 36 #"(lib \"comment-snip.ss\" \"framework\")\0" 1 0 43 #"(lib \"collapsed-snipclass.ss\" \"framework\")\0" 0 0 19 #"drscheme:sexp-snip\0" 0 0 40 #"(lib \"image-core.ss\" \"2htdp\" \"private\")\0" 1 0 36 #"(lib \"cache-image-snip.ss\" \"mrlib\")\0" 1 0 33 #"(lib \"bullet-snip.ss\" \"browser\")\0" 0 0 29 #"drscheme:bindings-snipclass%\0" 1 0 25 #"(lib \"matrix.ss\" \"htdp\")\0" 1 0 22 #"drscheme:lambda-snip%\0" 1 0 56 #"(lib \"hrule-snip.ss\" \"macro-debugger\" \"syntax-browser\")\0" 1 0 45 #"(lib \"image-snipr.ss\" \"slideshow\" \"private\")\0" 1 0 26 #"drscheme:pict-value-snip%\0" 0 0 38 #"(lib \"pict-snipclass.ss\" \"slideshow\")\0" 2 0 55 #"(lib \"vertical-separator-snip.ss\" \"stepper\" \"private\")\0" 1 0 18 #"drscheme:xml-snip\0" 1 0 31 #"(lib \"xml-snipclass.ss\" \"xml\")\0" 1 0 21 #"drscheme:scheme-snip\0" 2 0 34 #"(lib \"scheme-snipclass.ss\" \"xml\")\0" 1 0 10 #"text-box%\0" 1 0 32 #"(lib \"text-snipclass.ss\" \"xml\")\0" 1 0 15 #"test-case-box%\0" 2 0 1 6 #"wxloc\0" 0 0 75 0 1 #"\0" 0 75 1 #"\0" 0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 0 9 #"Standard\0" 0 75 17 #"Courier New Bold\0" 0 18 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 24 #"framework:default-color\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 150 0 150 0 0 0 -1 -1 2 15 #"text:ports out\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 150 0 150 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 255 0 0 0 0 0 -1 -1 2 15 #"text:ports err\0" 0 -1 1 #"\0" 1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 255 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 2 17 #"text:ports value\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 34 139 34 0 0 0 -1 -1 2 27 #"Matching Parenthesis Style\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 34 139 34 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 2 37 #"framework:syntax-color:scheme:symbol\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 2 38 #"framework:syntax-color:scheme:keyword\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 3 0 0 0 -1 -1 2 38 #"framework:syntax-color:scheme:comment\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 3 0 0 0 -1 -1 2 37 #"framework:syntax-color:scheme:string\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 41 128 38 0 0 0 -1 -1 2 39 #"framework:syntax-color:scheme:constant\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 41 128 38 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0 0 0 -1 -1 2 42 #"framework:syntax-color:scheme:parenthesis\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0 0 -1 -1 2 36 #"framework:syntax-color:scheme:error\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0 0 -1 -1 2 36 #"framework:syntax-color:scheme:other\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 81 112 203 0 0 0 -1 -1 2 38 #"drracket:check-syntax:lexically-bound\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 81 112 203 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2 28 #"drracket:check-syntax:set!d\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 68 0 203 0 0 0 -1 -1 2 31 #"drracket:check-syntax:imported\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 68 0 203 0 0 0 -1 -1 4 1 #"\0" 0 70 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 4 4 #"XML\0" 0 70 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 8 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 8 24 #"drscheme:text:ports err\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 4 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 4 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 255 0 0 0 -1 -1 4 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 255 0 0 0 -1 -1 4 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 100 0 0 0 0 -1 -1 0 1 #"\0" 0 75 1 #"\0" 0.0 10 90 -1 90 -1 3 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255 255 1 -1 0 1 #"\0" 0 75 12 #"Courier New\0" 0.0 18 90 -1 90 -1 3 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255 255 1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 194 116 31 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 41 128 38 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0 0 -1 -1 4 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0 0 -1 -1 2 1 #"\0" 0 70 1 #"\0" 1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 148 0 211 0 0 0 -1 -1 2 1 #"\0" 0 70 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0 0 -1 -1 0 1 #"\0" 0 -1 1 #"\0" 0.0 8 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 0.0 8 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 22 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 14 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 4 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 18 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 20 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 22 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0 0 0 -1 -1 14 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0 0 0 -1 -1 4 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0 0 0 -1 -1 20 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0 0 0 -1 -1 4 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 17 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 20 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 14 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 18 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 22 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 24 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 15 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 15 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 65 105 225 0 0 0 -1 -1 4 1 #"\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255 0 -1 -1 0 1 #"\0" 0 75 17 #"Courier New Bold\0" 0.0 18 90 -1 90 -1 3 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255 255 1 -1 0 596 0 4 3 85 ( #";; The first three lines of this file were inserted by DrRacket. The" #"y record metadata" ) 0 0 4 29 1 #"\n" 0 0 4 3 85 ( #";; about the language level of this file in a form that our tools ca" #"n easily process." ) 0 0 4 29 1 #"\n" 0 0 4 3 175 ( #"#reader(lib \"htdp-beginner-reader.ss\" \"lang\")((modname 131lab01)" #" (read-case-sensitive #t) (teachpacks ()) (htdp-settings #(#t constr" #"uctor repeating-decimal #f #t none #f ())))" ) 0 0 4 29 1 #"\n" 0 0 17 3 15 #"; Sharon Tuttle" 0 0 62 29 1 #"\n" 0 0 17 3 21 #"; CS 131 - Week 1 Lab" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 50 #"; these lines add access to the image and universe" 0 0 62 29 1 #"\n" 0 0 17 3 12 #"; teachpacks" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 7 #"require" 0 0 62 3 1 #" " 0 0 14 3 14 #"2htdp/universe" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 7 #"require" 0 0 62 3 1 #" " 0 0 14 3 11 #"2htdp/image" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 20 3 2 #"13" 0 0 62 3 3 #" " 0 0 17 3 34 #"; simple expression of type number" 0 0 62 29 1 #"\n" 0 0 14 3 2 #"pi" 0 0 62 29 1 #"\n" 0 0 14 3 1 #"e" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 34 #"; simple expression of type string" 0 0 62 29 1 #"\n" 0 0 18 3 7 #"\"hello\"" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 37 #"; a simple expression of type boolean" 0 0 62 29 1 #"\n" 0 0 14 3 4 #"true" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 35 #"; a simple expression of type image" 0 0 62 29 1 #"\n" 0 3 23 62 1 #"\0" 2 -1.0 -1.0 0.0 0.0 0 6 500 ( #"\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\0@\0\0\0@\b" #"\2\0\0\0%\v\346\211\0\0\nZIDATx\234\305Z\311V\333J\20" #"-\315\262\6\e\e\314\224\234\234\254\362" #"\377\37\224\5\31\b\20\3136\2665\17]oqQ\275\216\1'v\200\324\202\323" #"\310R\253\206[c\213\370\225\251i\32\375\337\262,\261\250\353Z)eYVU" #"U\314\\\24\0053o6\ef^,\26\262\256\353\32?=G&\275\25\265m" #"KD\216\343\324u\275X,\34\307!\"f\306_\337\367\225RQ\24%I2" #"\36\217\211(\212\"\334ODy\236?\273\357kh]'(\370\261.\327\353\265" #"i\232Dtqq\221\246\251Rj>" #"\237\267m\313\314\327\327\327i\232\342\36" #"\334\254\224zn\377W\27\200\231\313\262" #"\24\3440s\222$\253\325\212\231m\333ff\"\302\202\231\225Rwww\372\263" #"I\222\260\246\205\307\364F\2`QUU]\327X/\26\213\341p\bM\373\276" #"OD\0=3\27E\321u\0353\267m\253\224\352\272\16\377>Io\341\3\226" #"ea\321\266mY\226Dt{{{rr\242\224\n\303\220\210\312\262\34\f\6" #"\223\311d\275^/\227K\337\367\257\257" #"\257\211h\275^\e\206\321u\35\300\366" #"4\275\256\362\231\2319\313\262\272\256\5" #"\6\263\331\354\370\370\330u]H\202\213Dt~~.,\225e\t\207\1\204\304" #"n\217\351\355\234x\271\\\2023\245\24\30\r\202\0\254\27E\341y\36.Jt" #"bf\0\214\37\305b\235\366\206P\232\246\262VJ\1\22]\327\21Q]\327\22" #"\357\300%\302\v\300sttT\327\265\347y\300\203a\30\270\3314\315\301`0" #"\32\215l\333\246>\260\32\206ADa\30\342q<\202u\327u" #"xiQ\24\aB\250i\232,\313\362|\20\323K\322e\346\255n\20\265>\21\275\177\377^\300\6\317\1\5A " #"\362\340\218\333b\261x\377\376=\264" #"\243\337\214\346\246,K\311\233\273,\260" #"\243\216\27 \302\312Y\226\25E\201\355$\370H\236\26\0 X\311\263A\20H" #"\247\6^aC\335\31\200u\374\252{" #"#\326\220v\227\5\304\207\260\20\326\35" #"\307\321\325\206\27K\231%\245\21\20H\373\223\b\6\212\343Xb\321c:D\0" #"\"\32\16\207\370\tj@M\212+]" #"\327\3118d6\233\355\313\375\321\321\221" #"\310\200\265\364e/#\200\330\27\374\351" #"\201_\257X \222\236\247\376\\\375\b" #"J\360o@q\313\273\376J\0\317\363\220,\361S\236\347[\375M\327u\377w" #"\e\207\22,0\231Lv\260w\240\0\242~\301\t\367\225V\3234\270\23\31`" #"\327,d'\241\230\213\343\30\361#I" #"\222\35s\241\275\5@\34\304\365\331l" #"\266\\.\201~\351\274`\212\305ba\333\366\226;\376\t\305ql\30" #"\206eYR\220\243\364\1771\1\0Mf\376\366\355\e~\315\363\\<" ) 500 ( #"\370\352\352\352a_\"\244\233\303(\b" #"\2\354\211\300\377\222\2\240~\206\327\326" #"u\255\e\27\341\2\267!~\37\200\"\313\262<\317[,\26pe\311\350\207\b" #"\240\307/\224\220\266m#1\2417\205`\242!\324\353\222Aq\247\324\252R\6" #"\2432\205l\230\240\300\252\"\255\224\253\266m\vbI\253;\320Z\264m[\24" #"\305o:\262\315f\223e\231H\202\347" #"}\337\37\217\307\270\202\226\22\327?}" #"\372\4>\300\26\326\230D \242\353\3" #"\225-\246!U\24E\314\214\234\255\227" #"\0222/B\301g\30\206\347y\17\305" #"\322\16\326\267\376\315\363\334\262,\231\2100sQ\24pS\341\30\nCy\254/" #"\250/`q\177\34\307\334\237\304\340Yp\263\\.u\243!^Cx\331*\f" #"C\230h\275^+\245vY\0n\204\361*\367C%a\210\231\241Ep6\235" #"N\345\225q\34\353-\342V\367\310\217\"\362c}\261\6Z\271S\222\3\f\310" #"\314i\232>+\0\246\362\b\360]\327!\306c0:\235NOOO\357\356\356" #"|\337\227\371\202\376\16\220\336@\tT" #"\230Yty~~\316}\321\312\375\240\212\265\241\1h0\30\270\256\ve\301\367" #"\3608\270\372\243\246^?\341\251\252\n\317\243L\0R\1J\375T\vF7M" #"\23\225\37`-^\210B\232\36\3259z\17\270X,\200\253\266m7\233\r\260" #"$X\345\36\201\273,\200\205\30W4$}\267\350UW\274m\333q\34\313\24" #"\221z\177\25\364\377\337\r\366\31\35\323" #"$\f*\205\1YK\302\341\276\351\341~\f\365\e\b\361\257\221TD\322#O" #"\20\4`\5\374\351^KZ\3414\231L\3042p\17\327u\5\242\374\353)\230" #"^\314\352W\244\255-\212\2\0\251\252j\357\301\26\f\222$\2110" #"\364\344\\M\320\2025\304CT\225\\\376\"\264w\246\4\320\3438" ) 500 ( #"n\232\6!\25S\177\326r0\0215M\343\272.\324\217\6m4\32Y\226\205" #"\371\322\276/\335E\a\b-\201\225z\314\330\266-q\23#h\375\25r\17\21" #"y\236\347\272\256\216\365\277$\203\367\254" #"\332\233\246q\34\a'\207Q\249\216S\226%\224\nl\210\202'\223\t:\346" #"\266m\35\307\221\360G\217R\301_\321" #"\1B\313\240\16\321\215z\277\24\334\273\256+\36\"#Qd:T\23\277-\321" #"\376\234\169\344\363}\37\307\34\360\207" #"\207!k\357\f\244\25a\347\347\347m" #"\333\32\206\21E\21\372c\214\26%\234\277\0\355+1\22MY\226\3503P\364" #"KE$\223q\":99I\222Dr\5\2160\364\361\333\213\320\336\2\264m" #"\213\30\214\263N\352\vI\341\e\265\227\347yr\340uyy)g3\216\343\350" #"\275\350\277\21\200\373JK&\24@\374p8\324\235\201{O\225\314}qq\201" #"d\264\343\353\223W\27\200\373Y/\306\272R\265KU's}\\\304\201\227\343" #"8\220VN\242\376\245\0\30\26\bl" #"\340\221\276\357C\361\210\372m\333\236\235" #"\235\311\t6L\204bd\307\230\355-\4\20\f\200u\2342\210\35F\243Q\20" #"\4i\232J\355\0g\330\212\26\273\207m\257+\0\367G\305z\5\212\23_\240" #"\277i\232\262,=\317\223\2414\367\247" #"\310J\251\233\233\233\35_n\274\205\0" #"\272\362\306\343\361\307\217\37\251\257\253\243" #"(\2\270\21\210\20^\245\32\327\35\367" #"q\377u0\35\350\304\17\243\355>\4\301\rNOO\3234E:\e\215Fp" #"\6\356\213\341\242( \336\vr\177\210" #"\0`\35\345\273(^r\331\303\246=" #"\341\254N\377\324\22~\274\373K\312\275" #"h\357R\2\36\211\370\3W\26g\220\212MN%\360\327\363<\30\315" #"q\34\224zz\273\374\267t\230\334Y\226\241]\302&rH,\215\25" ) 207 ( #"\375\332\342\340\242\234G\355\236\26\356E" #"\a\206QPQ\24\222e\247\323\251\314" #"\27\346\3639\352m\333\266\307\343\261X" #"\203\265q\374K\321!\237\333\350G\256" #"a\30\352\335c\3234\242f\301\211\34s\270\256+#\333\177&\0\3678Y." #"\227rZ\fB\207)7\340\363\2dh=(\355\36\227\277\272\0\372\370\340\341" #"\263;\"\352\213P\"\222\b#\31\343\352\352J\326\b\251/X\220\36\30FW" #"\253\225\34Bz\236'\337\r`\330&\325NUU\372\267]eY\276`\31\a" #"\332\273'n\333\326\266m\234\341\205a\210Ol\360\23\302%6D\333 c\"" #"\300)\b\2<^\24\305\326\4\351`\372\17\361I\313" #"\274[R\206\v\0\0\0\0IEND\256B`\202" ) 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 47 #"; remember: compound expressions in Racket have" 0 0 62 29 1 #"\n" 0 0 17 3 16 #"; the syntax:" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 39 #"; (operation expression expression ...)" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 42 #"; arithmetic operations on numbers include" 0 0 62 29 1 #"\n" 0 0 17 3 42 #"; + - * / sin cos tan and more" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 46 #"; this is a compound expression of type number" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 1 #"+" 0 0 62 3 1 #" " 0 0 20 3 1 #"6" 0 0 62 3 1 #" " 0 0 20 3 3 #"7.8" 0 0 62 3 1 #" " 0 0 20 3 5 #"99.45" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 38 #"; there are operations on strings, too" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 43 #"; string-append expects string expressions " 0 0 62 29 1 #"\n" 0 0 17 3 44 #"; and produces a new string that is those" 0 0 62 29 1 #"\n" 0 0 17 3 29 #"; strings smushed together" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 13 #"string-append" 0 0 62 3 1 #" " 0 0 18 3 4 #"\"he\"" 0 0 62 3 1 #" " 0 0 18 3 5 #"\"llo\"" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 13 #"string-append" 0 0 62 3 1 #" " 0 0 18 3 4 #"\"he\"" 0 0 62 3 1 #" " 0 0 18 3 5 #"\"llo\"" 0 0 62 3 1 #" " 0 0 18 3 7 #"\"there\"" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 13 #"string-append" 0 0 62 3 1 #" " 0 0 18 3 3 #"\"h\"" 0 0 62 3 1 #" " 0 0 18 3 8 #"\"ello t\"" 0 0 62 3 1 #" " 0 0 18 3 6 #"\"here\"" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 46 #"; string-length expect a string expression and" 0 0 62 29 1 #"\n" 0 0 17 3 48 #"; produces a number, the number of characters" 0 0 62 29 1 #"\n" 0 0 17 3 19 #"; in that string" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 13 #"string-length" 0 0 62 3 1 #" " 0 0 18 3 7 #"\"hello\"" 0 0 22 3 1 #")" 0 0 62 3 1 #" " 0 0 17 3 35 #"; note: the type of this expression" 0 0 62 29 1 #"\n" 0 0 62 3 24 #" " 0 0 17 3 14 #"; is number!" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 1 #"+" 0 0 62 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 13 #"string-length" 0 0 62 3 1 #" " 0 0 18 3 7 #"\"hello\"" 0 0 22 3 1 #")" 0 0 62 3 1 #" " 0 0 20 3 2 #"10" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 44 #"; string=? expects strings and produces true" 0 0 62 29 1 #"\n" 0 0 17 3 52 #"; if they are equivalent (have the same contents)" 0 0 62 29 1 #"\n" 0 0 17 3 33 #"; and produces false otherwise" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 8 #"string=?" 0 0 62 3 1 #" " 0 0 18 3 7 #"\"goofy\"" 0 0 62 3 1 #" " 0 0 62 29 1 #"\n" 0 0 62 3 10 #" " 0 0 22 3 1 #"(" 0 0 14 3 13 #"string-append" 0 0 62 3 1 #" " 0 0 18 3 5 #"\"goo\"" 0 0 62 3 1 #" " 0 0 18 3 4 #"\"fy\"" 0 0 22 3 2 #"))" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 8 #"string=?" 0 0 62 3 1 #" " 0 0 18 3 7 #"\"goofy\"" 0 0 62 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 13 #"string-append" 0 0 62 3 1 #" " 0 0 18 3 5 #"\"gof\"" 0 0 62 3 1 #" " 0 0 18 3 4 #"\"oy\"" 0 0 22 3 2 #"))" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 8 #"string=?" 0 0 62 3 1 #" " 0 0 18 3 3 #"\"a\"" 0 0 62 3 1 #" " 0 0 18 3 3 #"\"a\"" 0 0 62 3 1 #" " 0 0 18 3 3 #"\"a\"" 0 0 62 3 1 #" " 0 0 18 3 3 #"\"a\"" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 42 #"; string->number expects a suitable string" 0 0 62 29 1 #"\n" 0 0 17 3 50 #"; (one that \"looks\" like a number) and produces" 0 0 62 29 1 #"\n" 0 0 17 3 26 #"; the equivalent number" 0 0 62 29 1 #"\n" 0 0 17 3 48 #"; ...interesting quirk: if the string's contents" 0 0 62 29 1 #"\n" 0 0 17 3 47 #"; can't be converted reasonably to a number," 0 0 62 29 1 #"\n" 0 0 17 3 33 #"; it produces a boolean, false" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 14 #"string->number" 0 0 62 3 1 #" " 0 0 18 3 4 #"\"42\"" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 14 #"string->number" 0 0 62 3 1 #" " 0 0 18 3 8 #"\"george\"" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 46 #"; number->string expects a number and produces" 0 0 62 29 1 #"\n" 0 0 17 3 25 #"; an equivalent string" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 14 #"number->string" 0 0 62 3 1 #" " 0 0 20 3 3 #"158" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 14 #"number->string" 0 0 62 3 1 #" " 0 0 20 3 4 #"42.3" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 36 #"; relational operations: > < >= <= =" 0 0 62 29 1 #"\n" 0 0 17 3 51 #"; compare number expressions and produce boolean" 0 0 62 29 1 #"\n" 0 0 17 3 44 #"; (this = only works to compare numbers!)" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 1 #"<" 0 0 62 3 1 #" " 0 0 20 3 1 #"1" 0 0 62 3 1 #" " 0 0 20 3 1 #"3" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 1 #"=" 0 0 62 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 1 #"+" 0 0 62 3 1 #" " 0 0 20 3 1 #"1" 0 0 62 3 1 #" " 0 0 20 3 1 #"1" 0 0 22 3 1 #")" 0 0 62 3 1 #" " 0 0 20 3 1 #"2" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 17 3 53 #";(= \"four\" 4) ; can't do this, \"four\" isn't a number" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 32 #"; boolean operations: and or not" 0 0 62 29 1 #"\n" 0 0 17 3 53 #"; and: expects boolean expressions, and produces true" 0 0 62 29 1 #"\n" 0 0 17 3 41 #"; if ALL of those expressions are true" 0 0 62 29 1 #"\n" 0 0 17 3 52 #"; or: expects boolean expressions, and produces true" 0 0 62 29 1 #"\n" 0 0 17 3 49 #"; if AT LEAST ONE of those expressions is true" 0 0 62 29 1 #"\n" 0 0 17 3 49 #"; not: expects a boolean expression, and produces" 0 0 62 29 1 #"\n" 0 0 17 3 53 #"; true of that expression is false, and vice versa" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 3 #"and" 0 0 62 3 1 #" " 0 0 14 3 4 #"true" 0 0 62 3 1 #" " 0 0 14 3 4 #"true" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 3 #"and" 0 0 62 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 1 #"<" 0 0 62 3 1 #" " 0 0 20 3 1 #"1" 0 0 62 3 1 #" " 0 0 20 3 1 #"3" 0 0 22 3 1 #")" 0 0 62 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 1 #"<" 0 0 62 3 1 #" " 0 0 20 3 1 #"3" 0 0 62 3 1 #" " 0 0 20 3 1 #"5" 0 0 22 3 2 #"))" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 3 #"and" 0 0 62 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 1 #"<" 0 0 62 3 1 #" " 0 0 20 3 1 #"1" 0 0 62 3 1 #" " 0 0 20 3 1 #"3" 0 0 22 3 1 #")" 0 0 62 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 1 #"<" 0 0 62 3 1 #" " 0 0 20 3 3 #"100" 0 0 62 3 1 #" " 0 0 20 3 1 #"5" 0 0 22 3 2 #"))" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 2 #"or" 0 0 62 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 1 #"<" 0 0 62 3 1 #" " 0 0 20 3 1 #"1" 0 0 62 3 1 #" " 0 0 20 3 1 #"3" 0 0 22 3 1 #")" 0 0 62 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 1 #"<" 0 0 62 3 1 #" " 0 0 20 3 3 #"100" 0 0 62 3 1 #" " 0 0 20 3 1 #"5" 0 0 22 3 2 #"))" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 3 #"not" 0 0 62 3 1 #" " 0 0 14 3 4 #"true" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 3 #"not" 0 0 62 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 1 #"=" 0 0 62 3 1 #" " 0 0 20 3 1 #"1" 0 0 62 3 1 #" " 0 0 20 3 1 #"3" 0 0 22 3 2 #"))" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 48 #"; the image and universe teachpacks provide MANY" 0 0 62 29 1 #"\n" 0 0 17 3 45 #"; image and otherwise graphical operations" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 59 #"; this is a SIGNATURE -- gives the name of an operation and" 0 0 62 29 1 #"\n" 0 0 17 3 56 #"; types of expressions it expects and type it produces" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 39 #"; circle: number string string -> image" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 53 #"; this is a PURPOSE STATEMENT -- it DESCRIBES what an" 0 0 62 29 1 #"\n" 0 0 17 3 52 #"; operation expects and DESCRIBES what it produces" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 50 #"; purpose: expects a radius in pixels, \"solid\" or " 0 0 62 29 1 #"\n" 0 0 17 3 19 #"; \"outline\", and" 0 0 62 29 1 #"\n" 0 0 17 3 50 #"; a color (expressed as a string), and produces" 0 0 62 29 1 #"\n" 0 0 17 3 44 #"; a circle of that size, style, and color" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 48 #"; pixel: picture element - 1 \"dot\" on the screen" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 6 #"circle" 0 0 62 3 1 #" " 0 0 20 3 3 #"0.5" 0 0 62 3 1 #" " 0 0 18 3 7 #"\"solid\"" 0 0 62 3 1 #" " 0 0 18 3 7 #"\"black\"" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 6 #"circle" 0 0 62 3 1 #" " 0 0 20 3 2 #"20" 0 0 62 3 1 #" " 0 0 18 3 9 #"\"outline\"" 0 0 62 3 1 #" " 0 0 18 3 5 #"\"red\"" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 52 #"; an IDENTIFIER is a name determined by a programmer" 0 0 62 29 1 #"\n" 0 0 17 3 48 #"; in Racket: just about any string of characters" 0 0 62 29 1 #"\n" 0 0 17 3 38 #"; (no blanks!) that doesn't include" 0 0 62 29 1 #"\n" 0 0 17 3 30 #"; ( ) [ ] { } \" , ' ` # | \\" 0 0 62 29 1 #"\n" 0 0 17 3 54 #"; and doesn't look like a number, string, or a boolean" 0 0 62 29 1 #"\n" 0 0 17 3 40 #"; nice style: start 'em with a letter..." 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 53 #"; you can give an identifier a desired value with the" 0 0 62 29 1 #"\n" 0 0 17 3 20 #"; define operation" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 32 #"; (define identifier expression)" 0 0 62 29 1 #"\n" 0 0 17 3 53 #"; produces nothing, but has the SIDE-EFFECT that that" 0 0 62 29 1 #"\n" 0 0 17 3 53 #"; identifier now has the value of that expression" 0 0 62 29 1 #"\n" 0 0 17 3 59 #"; (it is now a SIMPLE EXPRESSION whose value is that value)" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 15 3 6 #"define" 0 0 62 3 1 #" " 0 0 14 3 7 #"red-dot" 0 0 62 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 6 #"circle" 0 0 62 3 1 #" " 0 0 20 3 2 #"10" 0 0 62 3 1 #" " 0 0 18 3 7 #"\"solid\"" 0 0 62 3 1 #" " 0 0 18 3 5 #"\"red\"" 0 0 22 3 2 #"))" 0 0 62 29 1 #"\n" 0 0 14 3 7 #"red-dot" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 34 #"; beside: image image ... -> image" 0 0 62 29 1 #"\n" 0 0 17 3 48 #"; purpose: expects images, and produces an image" 0 0 62 29 1 #"\n" 0 0 17 3 44 #"; with all those images beside each other" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 6 #"beside" 0 0 62 3 1 #" " 0 0 14 3 7 #"red-dot" 0 0 62 3 1 #" " 0 0 14 3 7 #"red-dot" 0 0 62 3 1 #" " 0 0 14 3 7 #"red-dot" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 33 #"; above: image image ... -> image" 0 0 62 29 1 #"\n" 0 0 17 3 49 #"; purpose: expects images, and produces an image" 0 0 62 29 1 #"\n" 0 0 17 3 47 #"; with all those images one above each other" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 5 #"above" 0 0 62 3 1 #" " 0 0 14 3 7 #"red-dot" 0 0 62 3 1 #" " 0 0 14 3 7 #"red-dot" 0 0 62 3 1 #" " 0 0 14 3 7 #"red-dot" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 35 #"; overlay: image image ... -> image" 0 0 62 29 1 #"\n" 0 0 17 3 53 #"; purpose: expects images and lays the first image on" 0 0 62 29 1 #"\n" 0 0 17 3 54 #"; the second image on the third image ... lined up" 0 0 62 29 1 #"\n" 0 0 17 3 22 #"; by their centers" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 7 #"overlay" 0 0 62 3 1 #" " 0 0 14 3 7 #"red-dot" 0 0 62 29 1 #"\n" 0 0 62 3 9 #" " 0 0 22 3 1 #"(" 0 0 14 3 6 #"circle" 0 0 62 3 1 #" " 0 0 20 3 2 #"20" 0 0 62 3 1 #" " 0 0 18 3 7 #"\"solid\"" 0 0 62 3 1 #" " 0 0 18 3 6 #"\"blue\"" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 3 9 #" " 0 0 22 3 1 #"(" 0 0 14 3 6 #"circle" 0 0 62 3 1 #" " 0 0 20 3 2 #"40" 0 0 62 3 1 #" " 0 0 18 3 7 #"\"solid\"" 0 0 62 3 1 #" " 0 0 18 3 7 #"\"green\"" 0 0 22 3 2 #"))" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 34 #"; one more operation: check-expect" 0 0 62 29 1 #"\n" 0 0 17 3 52 #"; expects 2 expressions, and has an odd side-effect:" 0 0 62 29 1 #"\n" 0 0 17 3 57 #"; IF, for all check-expects in the Definitions window," 0 0 62 29 1 #"\n" 0 0 17 3 51 #"; the two expressions produce the same value," 0 0 62 29 1 #"\n" 0 0 17 3 57 #"; you get a message saying how many tests have passed." 0 0 62 29 1 #"\n" 0 0 17 3 56 #"; ELSE, you get a separate window pointing out which " 0 0 62 29 1 #"\n" 0 0 17 3 20 #"; ones didn't!" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 12 #"check-expect" 0 0 62 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 1 #"+" 0 0 62 3 1 #" " 0 0 20 3 1 #"1" 0 0 62 3 1 #" " 0 0 20 3 1 #"1" 0 0 22 3 1 #")" 0 0 62 3 1 #" " 0 0 20 3 1 #"2" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 17 3 50 #"; note: this is an example of a test that fails..." 0 0 62 29 1 #"\n" 0 0 17 3 51 #"; ...but you'll still see the red dot afterwards" 0 0 4 29 1 #"\n" 0 0 17 3 50 #"; (the test failing doesn't halt the execution)" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 12 #"check-expect" 0 0 62 3 1 #" " 0 0 14 3 4 #"true" 0 0 62 3 1 #" " 0 0 14 3 5 #"false" 0 0 22 3 1 #")" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 14 3 7 #"red-dot" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0 62 29 1 #"\n" 0 0