Version: 5.1
How to Design Programs Languages
The languages documented in this manual are provided by DrRacket to be
used with the How to Design
Programs book.
When programs in these languages are run in DrRacket, any part of the
program that was not run is highlighted in orange and black. These
colors are intended to give the programmer feedback about the parts of
the program that have not been tested. To avoid seeing these colors,
use check-expect to test your program. Of course, just
because you see no colors, does not mean that your program has been
fully tested; it simply means that each part of the program has been run
(at least once).
1 Beginning Student |
1.1 define |
1.2 define-struct |
1.3 Function Calls |
1.4 Primitive Calls |
1.5 cond |
1.6 if |
1.7 and |
1.8 or |
1.9 Test Cases |
1.10 empty |
1.11 Identifiers |
1.12 Symbols |
1.13 true and false |
1.14 require |
1.15 Primitive Operations |
1.15.1 Numbers: Integers, Rationals, Reals, Complex, Exacts, Inexacts |
1.15.2 Booleans |
1.15.3 Symbols |
1.15.4 Lists |
1.15.5 Posns |
1.15.6 Characters |
1.15.7 Strings |
1.15.8 Images |
1.15.9 Misc |
|
2 Beginning Student with List Abbreviations |
2.1 Quote |
2.2 Quasiquote |
2.3 Primitive Operations |
2.3.1 Numbers: Integers, Rationals, Reals, Complex, Exacts, Inexacts |
2.3.2 Booleans |
2.3.3 Symbols |
2.3.4 Lists |
2.3.5 Posns |
2.3.6 Characters |
2.3.7 Strings |
2.3.8 Images |
2.3.9 Misc |
2.4 Unchanged Forms |
|
3 Intermediate Student |
3.1 define |
3.2 define-struct |
3.3 local |
3.4 letrec, let, and let* |
3.5 Function Calls |
3.6 time |
3.7 Identifiers |
3.8 Primitive Operations |
3.8.1 Numbers: Integers, Rationals, Reals, Complex, Exacts, Inexacts |
3.8.2 Booleans |
3.8.3 Symbols |
3.8.4 Lists |
3.8.5 Posns |
3.8.6 Characters |
3.8.7 Strings |
3.8.8 Images |
3.8.9 Misc |
3.8.10 Numbers (relaxed conditions) |
3.8.11 Higher-Order Functions |
3.9 Unchanged Forms |
|
4 Intermediate Student with Lambda |
4.1 define |
4.2 lambda |
4.3 Function Calls |
4.4 Primitive Operation Names |
4.4.1 Numbers: Integers, Rationals, Reals, Complex, Exacts, Inexacts |
4.4.2 Booleans |
4.4.3 Symbols |
4.4.4 Lists |
4.4.5 Posns |
4.4.6 Characters |
4.4.7 Strings |
4.4.8 Images |
4.4.9 Misc |
4.4.10 Numbers (relaxed conditions) |
4.4.11 Higher-Order Functions |
4.5 Unchanged Forms |
|
5 Advanced Student |
5.1 define |
5.2 define-struct |
5.3 define-datatype |
5.4 lambda |
5.5 Function Calls |
5.6 begin |
5.7 begin0 |
5.8 set! |
5.9 delay |
5.10 shared |
5.11 let |
5.12 recur |
5.13 case |
5.14 match |
5.15 when and unless |
5.16 Primitive Operations |
5.16.1 Numbers: Integers, Rationals, Reals, Complex, Exacts, Inexacts |
5.16.2 Booleans |
5.16.3 Symbols |
5.16.4 Lists |
5.16.5 Posns |
5.16.6 Characters |
5.16.7 Strings |
5.16.8 Images |
5.16.9 Misc |
5.16.10 Numbers (relaxed conditions) |
5.16.11 Higher-Order Functions |
5.16.12 Reading and Printing |
5.16.13 Vectors |
5.16.14 Boxes |
5.16.15 Hash Tables |
5.17 Unchanged Forms |
|
Index |