("my-flatten") "tree"
comment: "tree" is not a pair -> flattens "tree"
("not") ("pair?") "tree"
"tree"
("my-flatten") "tree"
comment: first element of "tree" is the empty list -> flattens "tree"
("null?") ("car") "tree"
("my-flatten") ("cdr") "tree"
("my-flatten") "tree"
comment: first element of "tree" is a pair -> flattens "tree"
("pair?") ("car") "tree"
("append") ("my-flatten") ("car") "tree"
("my-flatten") ("cdr") "tree"
("my-flatten") "tree"
comment: first element of "tree" is not a pair -> flattens "tree"
(always)
("cons") ("car") "tree" ("my-flatten") ("cdr") "tree"
("remove-leading") "number" "list"
comment: empty "list" -> removes "number" elements from the head of "list"
("null?") "list"
nil
("remove-leading") "number" "list"
comment: "number" is zero -> removes "number" elements from the head of "list"
("=") "number" 0
"list"
("remove-leading") "number" "list"
comment: number is positive -> removes "number" elements from the head of "list"
(">") "number" 0
("remove-leading") ("-") "number" 1
("cdr") "list"
("ZEDefy") "string"
comment: takes "string" -> prepends ""ZED"" and returns a symbol
(always)
("string->symbol")
("list->string")
("append")
(wrap3) #Z #E #D
("my-flatten")
("map") "symbol-character"
("string->list") "string"
("symbol-character") "character"
comment: "character" is #[ -> returns characters for constructing an identifier
(=) "character" #[
(wrap2) #@ #1
("symbol-character") "character"
comment: "character" is #] -> returns characters for constructing an identifier
(=) "character" #]
(wrap2) #@ #2
("symbol-character") "character"
comment: "character" is #{ -> returns characters for constructing an identifier
(=) "character" #{
(wrap2) #@ #3
("symbol-character") "character"
comment: "character" is #} -> returns characters for constructing an identifier
(=) "character" #}
(wrap2) #@ #4
("symbol-character") "character"
comment: "character" is #' -> returns characters for constructing an identifier
(=) "character" #'
(wrap2) #@ #q
("symbol-character") "character"
comment: "character" is #` -> returns characters for constructing an identifier
(=) "character" #`
(wrap2) #@ #Q
("symbol-character") "character"
comment: "character" is #, -> returns characters for constructing an identifier
(=) "character" #,
(wrap2) #@ #c
("symbol-character") "character"
comment: "character" is #; -> returns characters for constructing an identifier
(=) "character" #;
(wrap2) #@ #s
("symbol-character") "character"
comment: "character" is #\ -> returns characters for constructing an identifier
(=) "character" #\
(wrap2) #@ #b
("symbol-character") "character"
comment: "character" does not have a graphical representation -> returns characters for constructing an identifier
("not") ("char-graphic?") "character"
(wrap2) #@ #w
("symbol-character") "character"
comment: "character" has a graphical representation -> returns characters for constructing an identifier
("char-graphic?") "character"
"character"
("clause-name") "clause"
comment: abs (number) ((=) number 0) (0)
(always)
("car") "clause"
("clause-arguments") "clause"
comment: abs (number) ((=) number 0) (0)
(always)
("cadr") "clause"
("clause-arity") "clause"
comment: abs (number) ((=) number 0) (0)
(always)
("length") ("clause-arguments") "clause"
("clause-body") "clause"
comment: abs (number) ((=) number 0) (0)
(always)
("cddr") "clause"
("clause-name-agree") "clause1" "clause2"
comment: takes two clauses -> returns the common clause name or signals err
("eq?") ("clause-name") "clause1"
("clause-name") "clause2"
("clause-name") "clause1"
("clause-arguments-agree") "clause1" "clause2"
comment: takes two clauses -> returns the common clause arguments or signals err
("equal?") ("clause-arguments") "clause1"
("clause-arguments") "clause2"
("clause-arguments") "clause1"
("combine-clauses") "clause1" "clause2"
comment: takes two clauses -> combines them
(always)
("cons") ("clause-name-agree") "clause1" "clause2"
("cons") ("clause-arguments-agree") "clause1" "clause2"
("append") ("clause-body") "clause1"
("clause-body") "clause2"
("combine-head-clauses") "program"
comment: "program" is a list of clauses -> combines the first two
(always)
("cons") ("combine-clauses") ("car") "program" ("cadr") "program"
("cddr") "program"
("ready-clause") "clause"
comment: ((abs) number) ((=) number 0) (0)
(always)
("cons") ("caaar") "clause"
("cons") ("cdar") "clause"
("cdr") "clause"
("ready-program") "program"
comment: "program" is a list of clauses -> readies the program
(always)
("map") "ready-clause" "program"
("combine-all") "program"
comment: empty "program" -> returns the fully combined program
("null?") "program"
nil
("combine-all") "program"
comment: one clause "program" -> returns the fully combined program
("null?") ("cdr") "program"
"program"
("combine-all") "program"
comment: head clause names in "program" agree -> returns the fully combined program
(=) ("clause-name") ("car") "program"
("clause-name") ("cadr") "program"
("combine-all") ("combine-head-clauses") "program"
("combine-all") "program"
comment: head clause names in "program" do not agree -> returns the fully combined program
("not") (=) ("clause-name") ("car") "program"
("clause-name") ("cadr") "program"
("cons") ("car") "program"
("combine-all") ("cdr") "program"
("combine-program-clauses") "program"
comment: "program" is a list of clauses -> returns the fully combined program after readying the clauses
(always)
("combine-all") ("ready-program") "program"
("arity-hash") "program"
comment: "program" is a list of combined clauses -> returns a symbol-arity hash table
(always)
("make-hasheq") ("append") ("map") "arity-hash1" "program"
("append") (wrap12)
("cons") "'ZEDfi" 2
("cons") "'ZEDlet*" 2
("cons") "'ZEDrd" 3
("cons") "'ZEDgrr" 2
("cons") "'ZEDgr" 2
("cons") "'ZEDdrr" 1
("cons") "'ZEDZEDdr" 1
("cons") "'ZEDdr" 1
("cons") "'ZEDpr" 1
("cons") "'ZEDZEDpr" 1
("cons") "'ZEDfirst" 2
("cons") "'ZEDmp" 2
("append") (wrap5)
("cons") "'ZEDdefault-output-port" 0
("cons") "'ZEDzed->racket" 1
("cons") "'if" 3
("cons") "'ZEDcall-with-output-string" 1
("cons") "'ZEDcurry" 1
("append") (wrap16)
("cons") "'and" 2
("cons") "'append" 2
("cons") "'assoc" 2
("cons") "'begin" 2
("cons") "'boolean?" 1
("cons") "'caaar" 1
("cons") "'cadr" 1
("cons") "'caddr" 1
("cons") "'cadddr" 1
("cons") "'car" 1
("cons") "'cdar" 1
("cons") "'cddddr" 1
("cons") "'cddr" 1
("cons") "'cdr" 1
("cons") "'char?" 1
("cons") "'char-numeric?" 1
("append") (wrap16)
("cons") "'char-graphic?" 1
("cons") "'close-input-port" 1
("cons") "'close-output-port" 1
("cons") "'cons" 2
("cons") "'define" 2
("cons") "'delete-file" 1
("cons") "'display" 2
("cons") "'eq?" 2
("cons") "'equal?" 2
("cons") "'eof-object?" 1
("cons") "'exact?" 1
("cons") "'file-exists?" 1
("cons") "'inexact?" 1
("cons") "'length" 1
("cons") "'list->string" 1
("cons") "'map" 2
("append") (wrap16)
("cons") "'not" 1
("cons") "'null?" 1
("cons") "'number?" 1
("cons") "'newline" 1
("cons") "'number->string" 1
("cons") "'or" 2
("cons") "'open-input-file" 1
("cons") "'open-output-file" 1
("cons") "'pair?" 1
("cons") "'quote" 1
("cons") "'reverse" 1
("cons") "'read-char" 1
("cons") "'symbol?" 1
("cons") "'string?" 1
("cons") "'string-append" 2
("cons") "'string->symbol" 1
("append") (wrap16)
("cons") "'symbol->string" 1
("cons") "'string->list" 1
("cons") "'string->number" 1
("cons") "'=" 2
("cons") "'<" 2
("cons") "'>" 2
("cons") "'-" 2
("cons") "'+" 2
("cons") "'*" 2
("cons") "'/" 2
("cons") "'ZED1" 1
("cons") "'ZED!" 1
("cons") "'ZEDc" 2
("cons") "'ZED001" 1
("cons") "'ZED002" 2
("cons") "'ZED003" 3
("append") (wrap16)
("cons") "'ZED004" 4
("cons") "'ZED005" 5
("cons") "'ZED006" 6
("cons") "'ZED007" 7
("cons") "'ZED008" 8
("cons") "'ZED009" 9
("cons") "'ZED010" 10
("cons") "'force" 1
("cons") "'ZED=" 2
("cons") "'caar" 1
("cons") "'cdddr" 1
("cons") "'list" 0
("cons") "'ZEDalways" 0
("cons") "'apply" 2
("cons") "'ZEDse" 2
("cons") "'ZEDand" 2
("append") (wrap16)
("cons") "'ZEDor" 2
("cons") "'ZED011" 11
("cons") "'ZED012" 12
("cons") "'ZED013" 13
("cons") "'ZED014" 14
("cons") "'ZED015" 15
("cons") "'ZED016" 16
("cons") "'ZED017" 17
("cons") "'ZED018" 18
("cons") "'ZED019" 19
("cons") "'ZED020" 20
("cons") "'ZED021" 21
("cons") "'ZED022" 22
("cons") "'ZED023" 23
("cons") "'ZED024" 24
("cons") "'ZED025" 25
("append") (wrap16)
("cons") "'ZED026" 26
("cons") "'ZED027" 27
("cons") "'ZED028" 28
("cons") "'ZED029" 29
("cons") "'ZED030" 30
("cons") "'ZED031" 31
("cons") "'ZED032" 32
("cons") "'get-file" 0
("cons") "'make-hasheq" 1
("cons") "'hash-ref" 2
("cons") "'apply1" 4
("cons") "'apply2" 6
("cons") "'apply3" 8
("cons") "'apply4" 10
("cons") "'apply5" 12
("cons") "'filter" 2
("append") (wrap16)
("cons") "'foldr" 3
("cons") "'function-hack-2" 2
("cons") "'write-char" 2
("cons") "'ZED033" 33
("cons") "'ZED034" 34
("cons") "'ZED035" 35
("cons") "'ZED036" 36
("cons") "'ZED037" 37
("cons") "'ZED038" 38
("cons") "'ZED039" 39
("cons") "'ZED040" 40
("cons") "'ZED041" 41
("cons") "'ZED042" 42
("cons") "'ZED043" 43
("cons") "'ZED044" 44
("cons") "'ZED045" 45
("append") (wrap16)
("cons") "'ZED046" 46
("cons") "'ZED047" 47
("cons") "'ZED048" 48
("cons") "'ZED049" 49
("cons") "'ZED050" 50
("cons") "'ZED051" 51
("cons") "'ZED052" 52
("cons") "'ZED053" 53
("cons") "'ZED054" 54
("cons") "'ZED055" 55
("cons") "'ZED056" 56
("cons") "'ZED057" 57
("cons") "'ZED058" 58
("cons") "'ZED059" 59
("cons") "'ZED060" 60
("cons") "'ZED061" 61
("append") (wrap16)
("cons") "'ZED062" 62
("cons") "'ZED063" 63
("cons") "'ZED064" 64
("cons") "'ZED065" 65
("cons") "'ZED066" 66
("cons") "'ZED067" 67
("cons") "'ZED068" 68
("cons") "'ZED069" 69
("cons") "'ZED070" 70
("cons") "'ZED071" 71
("cons") "'ZED072" 72
("cons") "'ZED073" 73
("cons") "'ZED074" 74
("cons") "'ZED075" 75
("cons") "'ZED076" 76
("cons") "'ZED077" 77
("append") (wrap16)
("cons") "'ZED078" 78
("cons") "'ZED079" 79
("cons") "'ZED080" 80
("cons") "'ZED081" 81
("cons") "'ZED082" 82
("cons") "'ZED083" 83
("cons") "'ZED084" 84
("cons") "'ZED085" 85
("cons") "'ZED086" 86
("cons") "'ZED087" 87
("cons") "'ZED088" 88
("cons") "'ZED089" 89
("cons") "'ZED090" 90
("cons") "'ZED091" 91
("cons") "'ZED092" 92
("cons") "'ZED093" 93
("append") (wrap16)
("cons") "'ZEDwrap" 1
("cons") "'ZEDwrap2" 2
("cons") "'ZEDwrap3" 3
("cons") "'ZEDwrap4" 4
("cons") "'ZEDwrap5" 5
("cons") "'ZEDwrap6" 6
("cons") "'ZEDwrap7" 7
("cons") "'ZEDwrap8" 8
("cons") "'ZEDwrap9" 9
("cons") "'ZEDwrap10" 10
("cons") "'ZEDwrap11" 11
("cons") "'ZEDwrap12" 12
("cons") "'ZEDwrap13" 13
("cons") "'ZEDwrap14" 14
("cons") "'ZEDwrap15" 15
("cons") "'ZEDwrap16" 16
(wrap7)
("cons") "'ZED094" 94
("cons") "'ZED095" 95
("cons") "'ZED096" 96
("cons") "'ZED097" 97
("cons") "'ZED098" 98
("cons") "'ZED099" 99
("cons") "'ZEDquote" 1
("arity-hash1") "clause"
comment: abs (number) ((=) number 0) (0)
(always)
("cons") ("clause-name") "clause"
("clause-arity") "clause"
("arity") "arity-hash" "function"
comment: takes a hash-table and a symbol -> returns the arity of the named function
(always)
("hash-ref") "arity-hash" "function"
("primitives")
comment: makes a begin with definitions for the primitives
(always)
("append") (wrap) "'begin"
("append") (wrap12)
("quote") ("define") (003) "ZEDfi" "function" "list"
("if") ("null?") "list"
nil
("if") (002) "function" (1) "list"
(c) (1) "list" (003) "ZEDfi" "function" (!) "list"
(003) "ZEDfi" "function" (!) "list"
(wrap3)
"'define-syntax"
"'ZEDlet*"
(wrap3)
"'syntax-rules"
nil
(wrap2)
(wrap3) "'_" "'a" "'b"
(wrap3) "'let*" "'a" "'b"
("quote") ("define") (004) "ZEDrd" "final" "function" "list"
(004) "foldr" "function" "final" (zed->racket) "list"
("quote") ("define") (003) "ZEDgrr" "garbage" "value"
("begin") (drr) "garbage" "value"
("quote") ("define") (003) "ZEDgr" "garbage" "value"
("begin") (dr) "garbage" "value"
("quote") ("define") (002) "ZEDdrr" "value"
("begin") ("display") (pr) "value" (default-output-port)
("begin") ("newline") (default-output-port)
("begin") ("newline") (default-output-port)
"value"
("quote") ("define") (002) "ZEDZEDdr" "value"
("if") ("pair?") "value"
(mp) "ZEDZEDdr" (first) 64 "value"
"value"
("quote") ("define") (002) "ZEDdr" "value"
("begin") ("display") (pr) (ZEDdr) "value" (default-output-port)
("begin") ("newline") (default-output-port)
("begin") ("newline") (default-output-port)
"value"
("quote") ("define") (002) "ZEDpr" "value"
(call-with-output-string) (002) (curry) "display" (ZEDpr) "value"
("quote") ("define") (002) "ZEDZEDpr" "value"
("if") ("char?") "value"
("string-append") ""\"#\""" ("list->string") (wrap) "value"
("if") ("string?") "value"
("string-append") ""\"\\\"\""" ("string-append") "value" ""\"\\\"\"""
("if") ("not") ("pair?") "value"
"value"
("cons") ("ZEDZEDpr") (1) "value" ("ZEDZEDpr") (!) "value"
("quote") ("define") (003) "ZEDfirst" "integer" "list"
("if") ("not") ("pair?") "list"
"list"
("if") ("=") "integer" 0
nil
(c) (1) "list"
("ZEDfirst") ("-") "integer" 1
(!) "list"
("quote") ("define") (003) "ZEDmp" "function" "list"
("if") ("null?") "list"
nil
("if") ("pair?") "list"
(c) (002) "function" (1) "list"
("ZEDmp") "function" (!) "list"
(002) "function" "list"
("append") (wrap3)
("quote") ("define") "ZEDdefault-output-port" "current-output-port"
("quote") ("define") (002) "ZEDzed->racket" "value"
("if") ("not") ("pair?") "value"
"value"
("cons") ("ZEDzed->racket") (1) "value" ("ZEDzed->racket") (!) "value"
("quote") ("define") "ZEDcall-with-output-string" "call-with-output-string"
("append") (wrap16)
("quote") ("define") "ZEDcurry" "curry"
("quote") ("define") "ZEDwrap" "list"
("quote") ("define") "ZEDwrap2" "list"
("quote") ("define") "ZEDwrap3" "list"
("quote") ("define") "ZEDwrap4" "list"
("quote") ("define") "ZEDwrap5" "list"
("quote") ("define") "ZEDwrap6" "list"
("quote") ("define") "ZEDwrap7" "list"
("quote") ("define") "ZEDwrap8" "list"
("quote") ("define") "ZEDwrap9" "list"
("quote") ("define") "ZEDwrap10" "list"
("quote") ("define") "ZEDwrap11" "list"
("quote") ("define") "ZEDwrap12" "list"
("quote") ("define") "ZEDwrap13" "list"
("quote") ("define") "ZEDwrap14" "list"
("quote") ("define") "ZEDwrap15" "list"
("append") (wrap16)
("quote") ("define") "ZEDwrap16" "list"
(wrap3)
"'define-syntax"
"'ZEDand"
(wrap3)
"'syntax-rules"
nil
(wrap2)
(wrap3) "'_" "'a" "'b"
(wrap3) "'and" "'a" "'b"
(wrap3)
"'define-syntax"
"'ZEDor"
(wrap3)
"'syntax-rules"
nil
(wrap2)
(wrap3) "'_" "'a" "'b"
(wrap3) "'or" "'a" "'b"
(wrap3)
"'define-syntax"
"'ZEDse"
(wrap3)
"'syntax-rules"
nil
(wrap2)
(wrap3) "'_" "'a" "'b"
(wrap3) "'begin" "'a" "'b"
(wrap3)
"'define-syntax"
"'ZEDc"
(wrap3)
"'syntax-rules"
nil
(wrap2)
(wrap3) "'_" "'a" "'b"
(wrap3) "'cons"
(wrap2) "'delay" "'a"
(wrap2) "'delay" "'b"
("quote")
("define")
("ZED1") "pair" ("force") ("car") "pair"
("quote")
("define")
("ZED!") "pair" ("force") ("cdr") "pair"
("quote") ("define") "ZED=" "eqv?"
("quote") ("define") "ZEDerr" "'err"
(wrap3)
"'define"
"'ZEDnil"
(wrap2)
"'quote"
nil
("quote") ("define") ("ZEDalways") "#true"
(wrap3)
"'define-syntax"
"'apply1"
(wrap3)
"'syntax-rules"
nil
(wrap2)
(wrap5) "'_" "'a" "'b" "'c" "'d"
(wrap5) "'apply" "'a" "'b" "'c" "'d"
(wrap3)
"'define-syntax"
"'apply2"
(wrap3)
"'syntax-rules"
nil
(wrap2)
(wrap7) "'_" "'a" "'b" "'c" "'d" "'e" "'f"
(wrap7) "'apply" "'a" "'b" "'c" "'d" "'e" "'f"
(wrap3)
"'define-syntax"
"'apply3"
(wrap3)
"'syntax-rules"
nil
(wrap2)
(wrap9) "'_" "'a" "'b" "'c" "'d" "'e" "'f" "'g" "'h"
(wrap9) "'apply" "'a" "'b" "'c" "'d" "'e" "'f" "'g" "'h"
(wrap3)
"'define-syntax"
"'apply4"
(wrap3)
"'syntax-rules"
nil
(wrap2)
(wrap11) "'_" "'a" "'b" "'c" "'d" "'e" "'f" "'g" "'h" "'i" "'j"
(wrap11) "'apply" "'a" "'b" "'c" "'d" "'e" "'f" "'g" "'h" "'i" "'j"
(wrap3)
"'define-syntax"
"'apply5"
(wrap3)
"'syntax-rules"
nil
(wrap2)
(wrap13) "'_" "'a" "'b" "'c" "'d" "'e" "'f" "'g" "'h" "'i" "'j" "'k" "'l"
(wrap13) "'apply" "'a" "'b" "'c" "'d" "'e" "'f" "'g" "'h" "'i" "'j" "'k" "'l"
(wrap)
(wrap3)
"'define-syntax"
"'ZEDquote"
(wrap3)
"'syntax-rules"
nil
(wrap2)
(wrap2) "'_" "'a"
(wrap2) "'quote" "'a"
("application?") "expression"
comment: (+) 1 2
(always)
("and") ("not") ("null?") "expression"
("pair?") ("car") "expression"
("function") "expression"
comment: (+) 1 2
(always)
("caar") "expression"
("double-application?") "expression"
comment: empty "expression" -> is the expression a double application?
("null?") "expression"
"#false"
("double-application?") "expression"
comment: "expression" just has one element -> is the expression a double application?
("null?") ("cdr") "expression"
"#false"
("double-application?") "expression"
comment: "expression" has at least two elements -> is the expression a double application?
(always)
("and") ("pair?") ("car") "expression"
("pair?") ("cadr") "expression"
("schemefy") "expression" "arity-hash"
comment: takes a ZED expresssion and the arity hash-table -> returns a Scheme expression
(always)
(wrap) ("schemefy1") "expression" "arity-hash"
("schemefy1") "expression" "arity-hash"
comment: (1 2 3) ((+ . 2) (square . 1) (current-directory . 0))
("not") ("application?") "expression"
("car") "expression"
("schemefy1") "expression" "arity-hash"
comment: ((current-directory) (square) 1) ((+ . 2) (square . 1) (current-directory . 0))
(=) 0 ("arity") "arity-hash" ("function") "expression"
("car") "expression"
("schemefy1") "expression" "arity-hash"
comment: ((+) (+) 1 2 3) ((+ . 2) (square . 1) (current-directory . 0))
("double-application?") "expression"
("schemefy2") "expression" "arity-hash" ("schemefy1") ("cdr") "expression" "arity-hash"
("schemefy1") "expression" "arity-hash"
comment: ((+) 1 2 3) ((+ . 2) (square . 1) (current-directory . 0))
("application?") "expression"
("cons") ("function") "expression"
("gather") ("arity")
"arity-hash"
("function") "expression"
("cdr") "expression"
"arity-hash"
("schemefy2") "expression" "arity-hash" "schemefied"
comment:
(always)
("cons") ("function") "expression"
("cons") "schemefied"
("gather")
("-") ("arity")
"arity-hash"
("function") "expression"
1
("remove-leading")
("+") 1 ("length")
("my-flatten") "schemefied"
"expression"
"arity-hash"
("gather") "how-many" "expression" "arity-hash"
comment: 0 (3) ((+ . 2) (square . 1) (current-directory . 0))
("=") "how-many" 0
nil
("gather") "how-many" "expression" "arity-hash"
comment: 2 ((+) 1 2 3) ((+ . 2) (square . 1) (current-directory . 0))
("application?") "expression"
("gather1") "how-many" "expression" "arity-hash" ("schemefy") "expression" "arity-hash"
("gather") "how-many" "expression" "arity-hash"
comment: 1 (2 3) ((+ . 2) (square . 1) (current-directory . 0))
("not") ("application?") "expression"
("cons") ("car") "expression"
("gather") ("-") "how-many" 1
("cdr") "expression"
"arity-hash"
("gather1") "how-many" "expression" "arity-hash" "schemefied"
comment:
(always)
("append") "schemefied"
("gather") ("-") "how-many" 1
("remove-leading")
("length")
("my-flatten") "schemefied"
"expression"
"arity-hash"
("map-with") "function" "list" "extra"
comment: empty "list" -> map over the list with an extra value
("null?") "list"
nil
("map-with") "function" "list" "extra"
comment: non empty "list" -> map over the list with an extra value
("not") ("null?") "list"
("cons") (003) "function" ("car") "list" "extra"
("map-with") "function" ("cdr") "list" "extra"
("functionize") "clause" "arity-hash"
comment: takes an already combined "clause" and the "arity-hash" -> produces a scheme function
(always)
(wrap3) "'define"
("cons") ("clause-name") "clause" ("clause-arguments") "clause"
("cons") "'cond"
("append")
("condefy")
("map-with")
"schemefy"
("clause-body") "clause"
"arity-hash"
(wrap) (wrap2) "'else" "'ZEDerr"
("condefy") "expressions"
comment: empty "expressions" -> constructs the list structure of a cond
("null?") "expressions"
nil
("condefy") "expressions"
comment: ((< number 0)) ((- 0 number)) ((not (< number 0))) (number)
(always)
("cons") ("append") ("car") "expressions"
("cadr") "expressions"
("condefy") ("cddr") "expressions"
("programize") "program" "arity-hash"
comment: takes the already combined clauses of "program" -> generates a Scheme program
(always)
("cons") "'begin" ("map-with") "functionize" "program" "arity-hash"
("namefy") "part"
comment: (square)
("pair?") "part"
(wrap) ("symbolize") ("car") "part"
("namefy") "part"
comment: .25
("not") ("pair?") "part"
("flexefy") "part"
("symbolize") "part"
comment: hey
("symbol?") "part"
("ZEDefy") ("symbol->string") "part"
("symbolize") "part"
comment: "hey"
("string?") "part"
("string->symbol") "part"
("flexefy") "part"
comment: hey
("symbol?") "part"
("flexefy1") ("string->list") ("symbol->string") "part"
("flexefy") "part"
comment: "hey"
("string?") "part"
("string->symbol") "part"
("flexefy") "part"
comment: 42
("exact?") "part"
"part"
("flexefy") "part"
comment: .25
("inexact?") "part"
("string->number") ("string-append") ""#e"" ("number->string") "part"
("flexefy1") "list"
comment: ## #0 #1
("and") (=) ## ("car") "list"
("and") (=) #0 ("cadr") "list"
("not") ("null?") ("cddr") "list"
("string->symbol")
("list->string") ("append") (wrap3) ## #\ #u
("cddr") "list"
("flexefy1") "list"
comment: ## #t #r #u #e
(003) "equal?" "list" (wrap5) ## #t #r #u #e
"#true"
("flexefy1") "list"
comment: ## #f #a #l #s #e
(003) "equal?" "list" (wrap6) ## #f #a #l #s #e
"#false"
("flexefy1") "list"
comment: ## #n #u #l
(=) ("car") "list" ##
("string->symbol") ("list->string") ("append") (wrap2) ## #\
("cdr") "list"
("flexefy1") "list"
comment: #h #e #y
("not") (=) ("car") "list" ##
("ZEDefy") ("list->string") "list"
("read-all!") "port"
comment: any input port -> reads in all the characters
(always)
("read-all1") "port" ("read-char") "port"
("read-all1") "port" "character"
comment: character is the end of file object -> reads in all the characters
("eof-object?") "character"
("begin") ("close-input-port") "port"
nil
("read-all1") "port" "character"
comment: not at end of file -> reads in all the characters
("not") ("eof-object?") "character"
("cons") "character" ("read-all!") "port"
("newline-space") "program"
comment: takes a "program" -> repeatedly removes newlines preceding #space or #tab
(always)
("append") ("newline-space-again") "program"
(wrap) #newline
("newline-space1") "program"
comment: empty "program" -> removes newlines before #space or #tab
("null?") "program"
nil
("newline-space1") "program"
comment: (#Z)
("null?") ("cdr") "program"
"program"
("newline-space1") "program"
comment: #newline #tab #Z #E #D
("and") (=) #newline ("car") "program"
("or") (=) #space ("cadr") "program"
(=) #tab ("cadr") "program"
("newline-space1") ("cdr") "program"
("newline-space1") "program"
comment: #newline #newline #space #Z
(=) #newline ("car") "program"
("cons") #newline ("newline-space1") ("cdr") "program"
("newline-space1") "program"
comment: #Z #newline #newline #space
("not") (=) #newline ("car") "program"
("cons") ("car") "program" ("newline-space1") ("cdr") "program"
("newline-space-again") "program"
comment: takes a "program" -> repeatedly removes newlines preceding #space or #tab
(always)
("newline-space-again1") "program" ("newline-space1") "program"
("newline-space-again1") "program" "transformed-program"
comment: (#Z #space) (#Z #space)
("equal?") "program" "transformed-program"
"program"
("newline-space-again1") "program" "transformed-program"
comment: (#Z #newline #space) '(#Z #space)
(always)
("newline-space-again") "transformed-program"
("newline-space-tab-repeats") "program"
comment: empty "program" -> returns program with no consecutive #newline and no consecutive #tab #space
("null?") "program"
nil
("newline-space-tab-repeats") "program"
comment: (#Z)
("null?") ("cdr") "program"
"program"
("newline-space-tab-repeats") "program"
comment: #newline #newline #newline #Z
("and") (=) #newline ("car") "program"
(=) #newline ("cadr") "program"
("newline-space-tab-repeats") ("cdr") "program"
("newline-space-tab-repeats") "program"
comment: #tab #space #tab #Z
("and") ("or") (=) #space ("car") "program"
(=) #tab ("car") "program"
("or") (=) #space ("cadr") "program"
(=) #tab ("cadr") "program"
("newline-space-tab-repeats") ("cdr") "program"
("newline-space-tab-repeats") "program"
comment: #tab #Z
(always)
("cons") ("car") "program" ("newline-space-tab-repeats") ("cdr") "program"
("tab-replace") "program"
comment: empty program -> replaces #tab with #space
("null?") "program"
nil
("tab-replace") "program"
comment: #tab #Z #space
(=) #tab ("car") "program"
("cons") #space ("tab-replace") ("cdr") "program"
("tab-replace") "program"
comment: #Z #tab
(always)
("cons") ("car") "program" ("tab-replace") ("cdr") "program"
("space-newline") "program"
comment: empty "program" -> remove #space before #newline
("null?") "program"
nil
("space-newline") "program"
comment: (#newline)
("null?") ("cdr") "program"
"program"
("space-newline") "program"
comment: #space #newline #Z
("and") (=) #space ("car") "program"
(=) #newline ("cadr") "program"
("space-newline") ("cdr") "program"
("space-newline") "program"
comment: #newline #Z #space #newline
(always)
("cons") ("car") "program" ("space-newline") ("cdr") "program"
("leading-newlines") "program"
comment: empty "program" -> program without leading newlines
("null?") "program"
nil
("leading-newlines") "program"
comment: #newline #Z
(=) #newline ("car") "program"
("cdr") "program"
("leading-newlines") "program"
comment: #Z #newline #E #newline
(always)
"program"
("sentences") "program"
comment: #o #n #e #space #t #w #o #newline #t #h #r #e #e #newline
(always)
("sentences1") "program" nil
("sentences1") "program" "accumulator"
comment: empty "program" -> returns the program broken up into sentences
("null?") "program"
nil
("sentences1") "program" "accumulator"
comment: (#newline #t #h #r #e #e #newline) (#o #w #t #space #e #n #o)
(=) #newline ("car") "program"
("cons") ("reverse") "accumulator"
("sentences1") ("cdr") "program" nil
("sentences1") "program" "accumulator"
comment: (#o #newline #t #h #r #e #e #newline) (#w #t #space #e #n #o)
(always)
("sentences1") ("cdr") "program"
("cons") ("car") "program"
"accumulator"
("discard-comments") "program"
comment: empty "program" -> throws out the comments
("null?") "program"
nil
("discard-comments") "program"
comment: non empty "program" -> throws out the comments
(always)
("cons") ("car") "program"
("cons") ("caddr") "program"
("cons") ("cadddr") "program"
("discard-comments") ("cddddr") "program"
("debug-sentence") "sentence"
comment: takes a "sentence" of characters -> generates a Racket list structure
("null?") "sentence"
nil
("debug-sentence") "sentence"
comment: #space #n #u #m #b #e #r
(=) #space ("car") "sentence"
("debug-sentence") ("cdr") "sentence"
("debug-sentence") "sentence"
comment: #( #a #b #s #) #space #n #u #m #b #e #r
(=) #( ("car") "sentence"
("debug-sentence1") "sentence" ("gather-verb") ("cdr") "sentence"
("debug-sentence") "sentence"
comment: #n #u #m #b #e #r
(always)
("cons") ("namefy") ("noun") ("gather-noun") "sentence"
("debug-sentence")
("remove-leading")
("length")
("gather-noun") "sentence"
"sentence"
("debug-sentence1") "sentence" "gather-verb"
comment:
(always)
("debug-sentence2") "sentence" "gather-verb" ("verb") "gather-verb"
("debug-sentence2") "sentence" "gather-verb" "verb"
comment:
("or") (=) "verb" "'c"
("or") (=) "verb" "'let*"
("or") (=) "verb" "'|001|"
("or") (=) "verb" "'|002|"
("or") (=) "verb" "'|003|"
("or") (=) "verb" "'|004|"
("or") (=) "verb" "'|005|"
("or") (=) "verb" "'|006|"
("or") (=) "verb" "'|007|"
("or") (=) "verb" "'|008|"
("or") (=) "verb" "'|009|"
("or") (=) "verb" "'|010|"
("or") (=) "verb" "'|011|"
("or") (=) "verb" "'|012|"
("or") (=) "verb" "'|013|"
("or") (=) "verb" "'|014|"
("or") (=) "verb" "'|015|"
("or") (=) "verb" "'|016|"
("or") (=) "verb" "'|017|"
("or") (=) "verb" "'|018|"
("or") (=) "verb" "'|019|"
("or") (=) "verb" "'|020|"
("or") (=) "verb" "'|021|"
("or") (=) "verb" "'|022|"
("or") (=) "verb" "'|023|"
("or") (=) "verb" "'|024|"
("or") (=) "verb" "'|025|"
("or") (=) "verb" "'|026|"
("or") (=) "verb" "'|027|"
("or") (=) "verb" "'|028|"
("or") (=) "verb" "'|029|"
("or") (=) "verb" "'|030|"
("or") (=) "verb" "'|031|"
("or") (=) "verb" "'|032|"
("or") (=) "verb" "'|033|"
("or") (=) "verb" "'|034|"
("or") (=) "verb" "'|035|"
("or") (=) "verb" "'|036|"
("or") (=) "verb" "'|037|"
("or") (=) "verb" "'|038|"
("or") (=) "verb" "'|039|"
("or") (=) "verb" "'|040|"
("or") (=) "verb" "'|041|"
("or") (=) "verb" "'|042|"
("or") (=) "verb" "'|043|"
("or") (=) "verb" "'|044|"
("or") (=) "verb" "'|045|"
("or") (=) "verb" "'|046|"
("or") (=) "verb" "'|047|"
("or") (=) "verb" "'|048|"
("or") (=) "verb" "'|049|"
("or") (=) "verb" "'|050|"
("or") (=) "verb" "'|051|"
("or") (=) "verb" "'|052|"
("or") (=) "verb" "'|053|"
("or") (=) "verb" "'|054|"
("or") (=) "verb" "'|055|"
("or") (=) "verb" "'|056|"
("or") (=) "verb" "'|057|"
("or") (=) "verb" "'|058|"
("or") (=) "verb" "'|059|"
("or") (=) "verb" "'|060|"
("or") (=) "verb" "'|061|"
("or") (=) "verb" "'|062|"
("or") (=) "verb" "'|063|"
("or") (=) "verb" "'|064|"
("or") (=) "verb" "'|065|"
("or") (=) "verb" "'|066|"
("or") (=) "verb" "'|067|"
("or") (=) "verb" "'|068|"
("or") (=) "verb" "'|069|"
("or") (=) "verb" "'|070|"
("or") (=) "verb" "'|071|"
("or") (=) "verb" "'|072|"
("or") (=) "verb" "'|073|"
("or") (=) "verb" "'|074|"
("or") (=) "verb" "'|075|"
("or") (=) "verb" "'|076|"
("or") (=) "verb" "'|077|"
("or") (=) "verb" "'|078|"
("or") (=) "verb" "'|079|"
("or") (=) "verb" "'|080|"
("or") (=) "verb" "'|081|"
("or") (=) "verb" "'|082|"
("or") (=) "verb" "'|083|"
("or") (=) "verb" "'|084|"
("or") (=) "verb" "'|085|"
("or") (=) "verb" "'|086|"
("or") (=) "verb" "'|087|"
("or") (=) "verb" "'|088|"
("or") (=) "verb" "'|089|"
("or") (=) "verb" "'|090|"
("or") (=) "verb" "'|091|"
("or") (=) "verb" "'|092|"
("or") (=) "verb" "'|093|"
("or") (=) "verb" "'|094|"
("or") (=) "verb" "'|095|"
("or") (=) "verb" "'|096|"
("or") (=) "verb" "'|097|"
("or") (=) "verb" "'|098|"
(=) "verb" "'|099|"
("cons") (wrap) "'ZEDgrr"
("cons") ("string-append") ""\"""
("string-append") ("list->string")
("foldr") "append"
nil
("map") "slashefy" "sentence"
""\"""
("cons") ("namefy") (wrap) "verb"
("read-sentence")
("remove-leading") ("+") 2 ("length") "gather-verb"
"sentence"
("debug-sentence2") "sentence" "gather-verb" "verb"
comment:
(always)
("cons") (wrap) "'ZEDdr"
("cons") (wrap) "'ZEDgrr"
("cons") ("string-append") ""\"""
("string-append") ("list->string")
("foldr") "append"
nil
("map") "slashefy" "sentence"
""\"""
("cons") ("namefy") (wrap) "verb"
("debug-sentence")
("remove-leading") ("+") 2 ("length") "gather-verb"
"sentence"
("slashefy") character
comment: character is quotation mark -> replace quotation marks with escaped
(=) #" character
(wrap2) #\ #"
("slashefy") character
comment: character is not quotation mark -> replace quotation marks with escaped
(always)
(wrap) character
("read-sentence") "sentence"
comment: takes a "sentence" of characters -> generates a Racket list structure
("null?") "sentence"
nil
("read-sentence") "sentence"
comment: #space #n #u #m #b #e #r
(=) #space ("car") "sentence"
("read-sentence") ("cdr") "sentence"
("read-sentence") "sentence"
comment: #( #a #b #s #) #space #n #u #m #b #e #r
(=) #( ("car") "sentence"
("read-sentence1") "sentence" ("gather-verb") ("cdr") "sentence"
("read-sentence") "sentence"
comment: #n #u #m #b #e #r
(always)
("cons") ("namefy") ("noun") ("gather-noun") "sentence"
("read-sentence")
("remove-leading")
("length")
("gather-noun") "sentence"
"sentence"
("read-sentence1") "sentence" "gather-verb"
comment:
(always)
("cons") ("namefy") (wrap) ("verb") "gather-verb"
("read-sentence")
("remove-leading") ("+") 2 ("length") "gather-verb"
"sentence"
("verb") "gather-verb"
comment: #" #q #u #o #t #e #"
("and") ("not") ("null?") ("cdr") "gather-verb"
("and") (=) #" ("car") "gather-verb"
(=) #" ("car") ("reverse") "gather-verb"
("list->string")
("cdr") ("reverse") ("cdr") ("reverse") "gather-verb"
("verb") "gather-verb"
comment: #q #u #o #t #e
(always)
("string->symbol") ("list->string") "gather-verb"
("noun") "gather-noun"
comment: #. #5
(always)
("noun-number") (list->string) "gather-noun" ("string->number") (list->string) "gather-noun"
("noun-number") "noun" "number"
comment: ".5" 0.5
(always)
("noun-number1") "noun" "number"
("noun-number1") "noun" "number"
comment: ".5" 0.5
"number"
"number"
("noun-number1") "noun" "number"
comment: ""square"" #false
("and") (=) #" ("car") ("string->list") "noun"
(=) #" ("car") ("reverse") ("string->list") "noun"
("list->string")
("cdr") ("reverse") ("cdr") ("reverse") ("string->list") "noun"
("noun-number1") "noun" "number"
comment: "square" #false
(always)
("string->symbol") "noun"
("debug-sentences") "sentences"
comment: empty "sentences" -> instrument to program
("null?") "sentences"
nil
("debug-sentences") "sentences"
comment: (#( #s #q #u #a #r #e #) #space #x) (#( #a #l #w #a #y #s #)) (#( #" #* #" #) #space #x #space #x)
(always)
("cons") ("read-sentence") ("car") "sentences"
("cons") ("debug-sentence") ("cadr") "sentences"
("cons") ("debug-sentence") ("caddr") "sentences"
("debug-sentences") ("cdddr") "sentences"
("read-sentences") "sentences"
comment: (#( #s #q #u #a #r #e #) #space #x) (#( #a #l #w #a #y #s #)) (#( #" #* #" #) #space #x #space #x)
(always)
("map") "read-sentence" "sentences"
("gather-verb") "sentence"
comment: #) #space #x
(=) #) ("car") "sentence"
nil
("gather-verb") "sentence"
comment: #s #q #u #a #r #e #) #space #x
(always)
("cons") ("car") "sentence"
("gather-verb") ("cdr") "sentence"
("gather-noun") "sentence"
comment: nil
("null?") "sentence"
nil
("gather-noun") "sentence"
comment: #space #n #u #m #b #e #r #2
(=) #space ("car") "sentence"
nil
("gather-noun") "sentence"
comment: #n #u #m #b #e #r #1 #space #n #u #m #b #e #r #2
(always)
("cons") ("car") "sentence"
("gather-noun") ("cdr") "sentence"
("by-three") "program"
comment: empty "program" -> gathers sentences into groups of three
("null?") "program"
nil
("by-three") "program"
comment: non empty "program" -> gathers sentences into groups of three
(always)
("cons")
(wrap3)
("car") "program"
("cadr") "program"
("caddr") "program"
("by-three") ("cdddr") "program"
("replace-candidate") "candidate"
comment: empty candidate -> get rid of non parentheses part
("null?") "candidate"
nil
("replace-candidate") "candidate"
comment: #( #s #q #u #a #r #e #space #tab
(=) #( ("car") "candidate"
("cons") #( ("replace-candidate") ("cdr") "candidate"
("replace-candidate") "candidate"
comment: #s #q #u #a #r #e #space #tab
(always)
nil
("candidate-confirmed?") "candidate" "exemplar"
comment: empty "exemplar" -> returns #true if "candidate" matches the "exemplar"
("null?") "exemplar"
("or") ("null?") "candidate"
("or") (=) #space ("car") "candidate"
(=) #tab ("car") "candidate"
("candidate-confirmed?") "candidate" "exemplar"
comment: empty "candidate" -> returns #true if "candidate" matches the "exemplar"
("null?") "candidate"
"#false"
("candidate-confirmed?") "candidate" "exemplar"
comment: "candidate" has leading parentheses -> returns #true if "candidate" matches the "exemplar"
(=) #( ("car") "candidate"
("candidate-confirmed?") ("cdr") "candidate" "exemplar"
("candidate-confirmed?") "candidate" "exemplar"
comment: first characters agree -> returns #true if "candidate" matches the "exemplar"
(always)
("and") (=) ("car") "candidate" ("car") "exemplar"
("candidate-confirmed?") ("cdr") "candidate" ("cdr") "exemplar"
("grab-candidate") "program"
comment: empty "program" -> grabs a candidate to be stripped away
("null?") "program"
nil
("grab-candidate") "program"
comment: character of "program" is #space or #tab -> grabs a candidate to be stripped away
("or") (=) #space ("car") "program"
(=) #tab ("car") "program"
("grab-candidate1") "program"
("grab-candidate") "program"
comment: character of "program" is not #space or #tab -> grabs a candidate to be stripped away
(always)
("cons") ("car") "program" ("grab-candidate") ("cdr") "program"
("grab-candidate1") "program"
comment: empty program -> grabs a candidate to be stripped away
("null?") "program"
nil
("grab-candidate1") "program"
comment: character is #space -> grabs a candidate to be stripped away
(=) #space ("car") "program"
("cons") #space ("grab-candidate1") ("cdr") "program"
("grab-candidate1") "program"
comment: character is #tab -> grabs a candidate to be stripped away
(=) #tab ("car") "program"
("cons") #tab ("grab-candidate1") ("cdr") "program"
("grab-candidate1") "program"
comment: character is non white space -> grabs a candidate to be stripped away
(always)
nil
("strip") "program"
comment: takes a Racket "program" of characters -> strips out 001 through 099
(always)
("foldr") "append" nil ("map") "strip3" ("strip1") "program"
("strip1") "program"
comment: empty "program" -> gathers up the candidates
("null?") "program"
nil
("strip1") "program"
comment: #( #0 #0 #1 #space #a #l #w #a #y #s
(=) ("car") "program" #(
("strip2") ("grab-candidate") "program" "program"
("strip1") "program"
comment: #a #l #w #a #y #s
(always)
("cons") (wrap) ("car") "program"
("strip1") ("cdr") "program"
("strip2") "candidate" "program"
comment: conses up the list of candidates
(always)
("cons") "candidate"
("strip1") ("remove-leading") ("length") "candidate" "program"
("strip3") "candidate"
comment: remove 001
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #0 #1
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 002
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #0 #2
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 003
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #0 #3
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 004
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #0 #4
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 005
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #0 #5
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 006
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #0 #6
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 007
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #0 #7
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 008
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #0 #8
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 009
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #0 #9
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 010
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #1 #0
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 011
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #1 #1
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 012
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #1 #2
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 013
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #1 #3
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 014
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #1 #4
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 015
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #1 #5
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 016
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #1 #6
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 017
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #1 #7
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 018
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #1 #8
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 019
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #1 #9
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 020
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #2 #0
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 021
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #2 #1
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 022
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #2 #2
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 023
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #2 #3
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 024
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #2 #4
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 025
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #2 #5
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 026
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #2 #6
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 027
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #2 #7
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 028
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #2 #8
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 029
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #2 #9
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 030
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #3 #0
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 031
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #3 #1
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 032
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #3 #2
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 033
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #3 #3
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 034
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #3 #4
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 035
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #3 #5
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 036
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #3 #6
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 037
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #3 #7
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 038
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #3 #8
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 039
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #3 #9
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 040
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #4 #0
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 041
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #4 #1
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 042
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #4 #2
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 043
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #4 #3
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 044
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #4 #4
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 045
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #4 #5
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 046
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #4 #6
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 047
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #4 #7
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 048
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #4 #8
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 049
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #4 #9
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 050
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #5 #0
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 051
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #5 #1
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 052
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #5 #2
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 053
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #5 #3
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 054
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #5 #4
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 055
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #5 #5
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 056
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #5 #6
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 057
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #5 #7
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 058
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #5 #8
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 059
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #5 #9
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 060
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #6 #0
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 061
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #6 #1
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 062
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #6 #2
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 063
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #6 #3
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 064
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #6 #4
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 065
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #6 #5
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 066
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #6 #6
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 067
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #6 #7
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 068
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #6 #8
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 069
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #6 #9
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 070
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #7 #0
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 071
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #7 #1
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 072
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #7 #2
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 073
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #7 #3
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 074
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #7 #4
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 075
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #7 #5
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 076
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #7 #6
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 077
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #7 #7
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 078
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #7 #8
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 079
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #7 #9
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 080
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #8 #0
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 081
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #8 #1
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 082
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #8 #2
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 083
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #8 #3
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 084
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #8 #4
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 085
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #8 #5
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 086
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #8 #6
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 087
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #8 #7
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 088
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #8 #8
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 089
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #8 #9
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 090
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #9 #0
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 091
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #9 #1
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 092
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #9 #2
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 093
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #9 #3
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 094
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #9 #4
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 095
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #9 #5
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 096
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #9 #6
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 097
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #9 #7
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 098
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #9 #8
("replace-candidate") "candidate"
("strip3") "candidate"
comment: remove 099
("candidate-confirmed?") "candidate" (wrap6) #Z #E #D #0 #9 #9
("replace-candidate") "candidate"
("strip3") "candidate"
comment: "candidate" did not match
(always)
"candidate"
("write-all!") "output-port" "program"
comment: empty "program" -> write out "program" to "output-port" and close "output-port"
("null?") "program"
("close-output-port") "output-port"
("write-all!") "output-port" "program"
comment: non empty "program" -> write out "program" to "output-port" and close "output-port"
(always)
("begin") ("write-char") ("car") "program" "output-port"
("write-all!") "output-port" ("cdr") "program"
("my-compile")
comment: compile both normal and debug versions
(always)
("my-compile-a") ("must-get-file")
("my-compile-a") "source"
comment: compile both normal and debug versions
(always)
("begin") ("my-compile-b") ("open-input-file") "source"
("my-compile-c") ("open-input-file") "source"
("my-compile-b") "source-port"
comment: compile normally
(always)
("my-compile1")
"source-port"
("open-input-file")
""C:\\Users\\Zelah\\Desktop\\ZEDWIN\\PRELUDE.txt""
""C:\\Users\\Zelah\\Desktop\\ZEDWIN\\TEMP.TEMP""
("begin") ("when-file-exists")
""C:\\Users\\Zelah\\Desktop\\ZEDWIN\\TEMP.TEMP""
("open-output-file")
""C:\\Users\\Zelah\\Desktop\\ZEDWIN\\TEMP.TEMP""
("begin") ("when-file-exists")
""C:\\Users\\Zelah\\Desktop\\ZEDWIN\\RACKET1.rkt""
("open-output-file")
""C:\\Users\\Zelah\\Desktop\\ZEDWIN\\RACKET1.rkt""
"read-sentences"
("my-compile-c") "source-port"
comment: compile in debug mode
(always)
("my-compile1")
"source-port"
("open-input-file")
""C:\\Users\\Zelah\\Desktop\\ZEDWIN\\PRELUDE.txt""
""C:\\Users\\Zelah\\Desktop\\ZEDWIN\\TEMP.TEMP""
("begin") ("when-file-exists")
""C:\\Users\\Zelah\\Desktop\\ZEDWIN\\TEMP.TEMP""
("open-output-file")
""C:\\Users\\Zelah\\Desktop\\ZEDWIN\\TEMP.TEMP""
("begin") ("when-file-exists")
""C:\\Users\\Zelah\\Desktop\\ZEDWIN\\RACKET2.rkt""
("open-output-file")
""C:\\Users\\Zelah\\Desktop\\ZEDWIN\\RACKET2.rkt""
"debug-sentences"
("must-get-file")
comment: must choose a file
(always)
("must-get-file1") ("get-file")
("must-get-file1") path
comment: must choose a file
path
path
("must-get-file1") path
comment: must choose a file
(always)
("must-get-file")
("when-file-exists") "path"
comment: ensure file can be written
("file-exists?") "path"
("delete-file") "path"
("not-return?") character
comment: #Z
(always)
("not") (=) #return character
("my-compile1") "ZED" "PRELUDE" "TEMP-path" "TEMP" "RACKET" "read/debug-sentences"
comment: generate combined
(always)
("my-compile2") "ZED"
"PRELUDE"
"TEMP-path"
"TEMP"
"RACKET"
("combine-program-clauses")
("by-three")
(002) "read/debug-sentences"
("discard-comments")
("sentences")
("leading-newlines")
("space-newline")
("tab-replace")
("newline-space-tab-repeats")
("newline-space")
("filter") "not-return?"
("append") ("append")
("read-all!") "PRELUDE"
(wrap2) #newline #newline
("read-all!") "ZED"
("my-compile2") "ZED" "PRELUDE" "TEMP-path" "TEMP" "RACKET" "combined"
comment: programize program
(always)
("my-compile3") "ZED"
"PRELUDE"
"TEMP-path"
"TEMP"
"RACKET"
("programize") "combined" ("arity-hash") "combined"
("my-compile3") "ZED" "PRELUDE" "TEMP-path" "TEMP" "RACKET" "programized"
comment: write out the compiled program
(always)
("begin") ("display") ""#lang"" "TEMP"
("begin") ("display") #space "TEMP"
("begin") ("display") ""racket/gui"" "TEMP"
("begin") ("newline") "TEMP"
("begin") ("display") ("primitives") "TEMP"
("begin") ("newline") "TEMP"
("begin") ("display") "programized" "TEMP"
("begin") ("close-output-port") "TEMP"
("my-compile4") ("open-input-file") "TEMP-path" "RACKET"
("my-compile4") "TEMP" "RACKET"
comment: write out the compiled program
(always)
("write-all!") "RACKET" ("strip") ("read-all!") "TEMP"
No comments:
Post a Comment