#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 104 0 1 #"\0" 0 75 1 #"\0" 0 10 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 12 #"Courier New\0" 0 10 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 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 37 #"framework:syntax-color:scheme:symbol\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 38 38 128 0 0 0 -1 -1 2 38 #"framework:syntax-color:scheme:keyword\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 38 38 128 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 194 116 31 0 0 0 -1 -1 2 38 #"framework:syntax-color:scheme:comment\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 194 116 31 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 41 128 38 0 0 0 -1 -1 2 37 #"framework:syntax-color:scheme:string\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 41 128 38 0 0 0 -1 -1 2 39 #"framework:syntax-color:scheme:constant\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 41 128 38 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 132 60 36 0 0 0 -1 -1 2 42 #"framework:syntax-color:scheme:parenthesis\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 132 60 36 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 255 0 0 0 0 0 -1 -1 2 36 #"framework:syntax-color:scheme:error\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 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 0 0 0 0 -1 -1 2 36 #"framework:syntax-color:scheme:other\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 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 22 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 15 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 4 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 14 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 19 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 22 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 14 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 4 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -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 255 255 255 -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 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 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 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 255 255 255 -1 -1 19 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 255 255 255 -1 -1 0 1 #"\0" 0 75 12 #"Courier New\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 20 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 15 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 20 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 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 255 255 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 0 0 0 255 255 255 -1 -1 19 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 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 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 24 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 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 2 40 #"framework:syntax-coloring:scheme:symbol\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 38 38 128 0 0 0 -1 -1 2 41 #"framework:syntax-coloring:scheme:keyword\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 38 38 128 0 0 0 -1 -1 2 41 #"framework:syntax-coloring:scheme:comment\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 194 116 31 0 0 0 -1 -1 2 40 #"framework:syntax-coloring:scheme:string\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 41 128 38 0 0 0 -1 -1 2 42 #"framework:syntax-coloring:scheme:constant\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 41 128 38 0 0 0 -1 -1 2 45 #"framework:syntax-coloring:scheme:parenthesis\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 132 60 36 0 0 0 -1 -1 2 39 #"framework:syntax-coloring:scheme:error\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 2 39 #"framework:syntax-coloring:scheme:other\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 14 #"Html Standard\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 49 #"drscheme:check-syntax:lexically-bound-identifier\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 42 #"drscheme:check-syntax:imported-identifier\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 37 #"profj:syntax-coloring:scheme:keyword\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 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 139 0 139 0 0 0 -1 -1 2 39 #"profj:syntax-coloring:scheme:prim-type\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 139 0 139 0 0 0 -1 -1 2 40 #"profj:syntax-coloring:scheme:identifier\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 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 34 139 34 0 0 0 -1 -1 2 36 #"profj:syntax-coloring:scheme:string\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 34 139 34 0 0 0 -1 -1 2 37 #"profj:syntax-coloring:scheme:literal\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 34 139 34 0 0 0 -1 -1 2 37 #"profj:syntax-coloring:scheme:comment\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 194 116 31 0 0 0 -1 -1 2 35 #"profj:syntax-coloring:scheme:error\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 2 37 #"profj:syntax-coloring:scheme:default\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 39 #"profj:syntax-coloring:scheme:uncovered\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 37 #"profj:syntax-coloring:scheme:covered\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 139 0 139 0 0 0 -1 -1 2 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 70 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 66 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 4 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 65 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 68 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 69 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 65 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 178 34 34 0 0 0 -1 -1 67 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 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 4 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 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 70 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 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 66 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 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 65 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 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 71 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 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 68 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 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 69 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 0.0 0.0 0.0 0 0 0 255 255 255 -1 -1 0 214 0 17 3 85 ( #";; The first three lines of this file were inserted by DrRacket. The" #"y record metadata" ) 0 0 50 29 1 #"\n" 0 0 17 3 85 ( #";; about the language level of this file in a form that our tools ca" #"n easily process." ) 0 0 50 29 1 #"\n" 0 0 24 3 7 #"#reader" 0 0 22 3 1 #"(" 0 0 14 3 3 #"lib" 0 0 50 3 1 #" " 0 0 19 3 25 #"\"htdp-advanced-reader.ss\"" 0 0 50 3 1 #" " 0 0 19 3 6 #"\"lang\"" 0 0 22 3 3 #")((" 0 0 14 3 7 #"modname" 0 0 50 3 1 #" " 0 0 14 3 12 #"lect26-notes" 0 0 22 3 1 #")" 0 0 50 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 19 #"read-case-sensitive" 0 0 50 3 1 #" " 0 0 20 3 2 #"#t" 0 0 22 3 1 #")" 0 0 50 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 10 #"teachpacks" 0 0 50 3 1 #" " 0 0 22 3 3 #"())" 0 0 50 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 13 #"htdp-settings" 0 0 50 3 1 #" " 0 0 22 3 2 #"#(" 0 0 20 3 2 #"#t" 0 0 50 3 1 #" " 0 0 14 3 11 #"constructor" 0 0 50 3 1 #" " 0 0 14 3 17 #"repeating-decimal" 0 0 50 3 1 #" " 0 0 20 3 2 #"#t" 0 0 50 3 1 #" " 0 0 20 3 2 #"#t" 0 0 50 3 1 #" " 0 0 14 3 4 #"none" 0 0 50 3 1 #" " 0 0 20 3 2 #"#f" 0 0 50 3 1 #" " 0 0 22 3 5 #"())))" 0 0 50 29 1 #"\n" 0 0 17 3 36 #";; Lecture 23 - two-way family trees" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 17 3 68 #";; a person is a (make-person string famtree famtree list-of-person)" 0 0 50 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 15 3 13 #"define-struct" 0 0 50 3 1 #" " 0 0 14 3 6 #"person" 0 0 50 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 4 #"name" 0 0 50 3 1 #" " 0 0 14 3 6 #"mother" 0 0 50 3 1 #" " 0 0 14 3 6 #"father" 0 0 50 3 1 #" " 0 0 14 3 4 #"kids" 0 0 22 3 2 #"))" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 17 3 22 #";; a famtree is either" 0 0 50 29 1 #"\n" 0 0 17 3 15 #";; 'unknown, or" 0 0 50 29 1 #"\n" 0 0 17 3 11 #";; a person" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 17 3 29 #";; a list-of-person is either" 0 0 50 29 1 #"\n" 0 0 17 3 12 #";; empty, or" 0 0 50 29 1 #"\n" 0 0 17 3 31 #";; (cons person list-of-person)" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 7 385 50 0 0 0 63 0 17 3 33 #";; famtree-fcn: famtree ... -> ?" 0 0 2 29 1 #"\n" 0 0 17 3 4 #";; ?" 0 0 2 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 15 3 6 #"define" 0 0 2 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 11 #"famtree-fcn" 0 0 2 3 1 #" " 0 0 14 3 3 #"aft" 0 0 2 3 1 #" " 0 0 14 3 3 #"..." 0 0 22 3 1 #")" 0 0 2 29 1 #"\n" 0 0 2 3 2 #" " 0 0 22 3 1 #"(" 0 0 15 3 4 #"cond" 0 0 2 3 1 #" " 0 0 22 3 2 #"[(" 0 0 14 3 7 #"symbol?" 0 0 2 3 1 #" " 0 0 14 3 3 #"aft" 0 0 22 3 1 #")" 0 0 2 3 4 #" " 0 0 22 3 1 #"]" 0 0 2 29 1 #"\n" 0 0 2 3 8 #" " 0 0 22 3 2 #"[(" 0 0 14 3 7 #"person?" 0 0 2 3 1 #" " 0 0 14 3 3 #"aft" 0 0 22 3 1 #")" 0 0 2 3 2 #" " 0 0 22 3 1 #"(" 0 0 14 3 11 #"person-name" 0 0 2 3 1 #" " 0 0 14 3 3 #"aft" 0 0 22 3 1 #")" 0 0 2 29 1 #"\n" 0 0 2 3 24 #" " 0 0 22 3 1 #"(" 0 0 14 3 13 #"person-mother" 0 0 2 3 1 #" " 0 0 14 3 3 #"aft" 0 0 22 3 1 #")" 0 0 2 29 1 #"\n" 0 0 2 3 24 #" " 0 0 22 3 1 #"(" 0 0 14 3 13 #"person-father" 0 0 2 3 1 #" " 0 0 14 3 3 #"aft" 0 0 22 3 1 #")" 0 0 2 29 1 #"\n" 0 0 2 3 24 #" " 0 0 22 3 1 #"(" 0 0 14 3 11 #"person-kids" 0 0 2 3 1 #" " 0 0 14 3 3 #"aft" 0 0 22 3 1 #")" 0 0 2 3 4 #" " 0 0 22 3 3 #"]))" 0 0 2 29 1 #"\n" 0 0 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 7 289 50 0 0 0 47 0 17 3 37 #";; dtree-fcn/person: person ... -> ?" 0 0 2 29 1 #"\n" 0 0 17 3 4 #";; ?" 0 0 2 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 15 3 6 #"define" 0 0 2 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 16 #"dtree-fcn/person" 0 0 2 3 1 #" " 0 0 14 3 4 #"aper" 0 0 2 3 1 #" " 0 0 14 3 1 #"." 0 0 14 3 2 #".." 0 0 22 3 1 #")" 0 0 2 29 1 #"\n" 0 0 2 3 2 #" " 0 0 22 3 1 #"(" 0 0 14 3 11 #"person-name" 0 0 2 3 1 #" " 0 0 14 3 4 #"aper" 0 0 22 3 1 #")" 0 0 2 29 1 #"\n" 0 0 2 3 2 #" " 0 0 22 3 1 #"(" 0 0 14 3 13 #"person-mother" 0 0 2 3 1 #" " 0 0 14 3 4 #"aper" 0 0 22 3 1 #")" 0 0 2 29 1 #"\n" 0 0 2 3 2 #" " 0 0 22 3 1 #"(" 0 0 14 3 13 #"person-father" 0 0 2 3 1 #" " 0 0 14 3 4 #"aper" 0 0 22 3 1 #")" 0 0 2 29 1 #"\n" 0 0 2 3 2 #" " 0 0 22 3 1 #"(" 0 0 14 3 14 #"dtree-fcn/list" 0 0 2 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 11 #"person-kids" 0 0 2 3 1 #" " 0 0 14 3 4 #"aper" 0 0 22 3 3 #")))" 0 0 2 29 1 #"\n" 0 0 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 7 325 50 0 0 0 53 0 17 3 43 #";; dtree-fcn/list: list-of-person ... -> ?" 0 0 2 29 1 #"\n" 0 0 17 3 4 #";; ?" 0 0 2 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 15 3 6 #"define" 0 0 2 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 14 #"dtree-fcn/list" 0 0 2 3 1 #" " 0 0 14 3 4 #"alop" 0 0 2 3 1 #" " 0 0 14 3 1 #"." 0 0 14 3 2 #".." 0 0 22 3 1 #")" 0 0 2 29 1 #"\n" 0 0 2 3 2 #" " 0 0 22 3 1 #"(" 0 0 15 3 4 #"cond" 0 0 2 3 1 #" " 0 0 22 3 2 #"[(" 0 0 14 3 6 #"empty?" 0 0 2 3 1 #" " 0 0 14 3 4 #"alop" 0 0 22 3 1 #")" 0 0 2 3 5 #" " 0 0 22 3 1 #"]" 0 0 2 29 1 #"\n" 0 0 2 3 8 #" " 0 0 22 3 2 #"[(" 0 0 14 3 5 #"cons?" 0 0 2 3 1 #" " 0 0 14 3 4 #"alop" 0 0 22 3 1 #")" 0 0 2 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 16 #"dtree-fcn/person" 0 0 2 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 5 #"first" 0 0 2 3 1 #" " 0 0 14 3 4 #"alop" 0 0 22 3 2 #"))" 0 0 2 3 4 #" " 0 0 22 3 1 #"(" 0 0 14 3 14 #"dtree-fcn/list" 0 0 2 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 4 #"rest" 0 0 2 3 1 #" " 0 0 14 3 4 #"alop" 0 0 22 3 5 #"))]))" 0 0 2 29 1 #"\n" 0 0 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 15 3 6 #"define" 0 0 50 3 1 #" " 0 0 14 3 4 #"Bper" 0 0 50 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 11 #"make-person" 0 0 50 3 1 #" " 0 0 19 3 8 #"\"Brenda\"" 0 0 50 3 1 #" " 0 0 20 3 1 #"'" 0 0 14 3 7 #"unknown" 0 0 50 3 1 #" " 0 0 20 3 1 #"'" 0 0 14 3 7 #"unknown" 0 0 50 3 1 #" " 0 0 14 3 5 #"empty" 0 0 22 3 2 #"))" 0 0 50 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 15 3 6 #"define" 0 0 50 3 1 #" " 0 0 14 3 4 #"Jper" 0 0 50 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 11 #"make-person" 0 0 50 3 1 #" " 0 0 19 3 6 #"\"Judy\"" 0 0 50 3 1 #" " 0 0 14 3 4 #"Bper" 0 0 50 3 1 #" " 0 0 20 3 1 #"'" 0 0 14 3 7 #"unknown" 0 0 50 3 1 #" " 0 0 14 3 5 #"empty" 0 0 22 3 2 #"))" 0 0 50 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 14 3 16 #"set-person-kids!" 0 0 50 3 1 #" " 0 0 14 3 4 #"Bper" 0 0 50 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 4 #"list" 0 0 50 3 1 #" " 0 0 14 3 4 #"Jper" 0 0 22 3 2 #"))" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 17 3 46 #";; add-child-to-mother: person string -> void" 0 0 50 29 1 #"\n" 0 0 17 3 69 ( #";; takes a person and the name of the child and adds the child to th" #"e" ) 0 0 50 29 1 #"\n" 0 0 17 3 58 #";; family tree with the given person as the child's mother" 0 0 50 29 1 #"\n" 0 0 17 3 50 #";; EFFECT: changes kids component of given mother" 0 0 50 29 1 #"\n" 0 0 22 3 1 #"(" 0 0 15 3 6 #"define" 0 0 50 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 19 #"add-child-to-mother" 0 0 50 3 1 #" " 0 0 14 3 4 #"aper" 0 0 50 3 1 #" " 0 0 14 3 4 #"name" 0 0 22 3 1 #")" 0 0 50 29 1 #"\n" 0 0 50 3 2 #" " 0 0 22 3 1 #"(" 0 0 15 3 5 #"local" 0 0 50 3 1 #" " 0 0 22 3 2 #"[(" 0 0 15 3 6 #"define" 0 0 50 3 1 #" " 0 0 14 3 8 #"childper" 0 0 50 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 11 #"make-person" 0 0 50 3 1 #" " 0 0 14 3 4 #"name" 0 0 50 3 1 #" " 0 0 14 3 4 #"aper" 0 0 50 3 1 #" " 0 0 20 3 1 #"'" 0 0 14 3 7 #"unknown" 0 0 50 3 1 #" " 0 0 14 3 5 #"empty" 0 0 22 3 3 #"))]" 0 0 50 29 1 #"\n" 0 0 50 3 2 #" " 0 0 22 3 1 #"(" 0 0 14 3 16 #"set-person-kids!" 0 0 50 3 1 #" " 0 0 14 3 4 #"aper" 0 0 50 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 4 #"cons" 0 0 50 3 1 #" " 0 0 14 3 8 #"childper" 0 0 50 3 1 #" " 0 0 22 3 1 #"(" 0 0 14 3 11 #"person-kids" 0 0 50 3 1 #" " 0 0 14 3 4 #"aper" 0 0 22 3 1 #")" 0 0 50 3 1 #" " 0 0 22 3 4 #"))))" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0 50 29 1 #"\n" 0 0