|Playlist||schedule page slides as PDF|
HtDP 0 — intro (1:14)
Introducing the design recipe
HtDP 1 — atomic (2:39)
Using the design recipe for atomic data.
HtDP 2 — compound (2:53)
Using the design recipe for compound data. At this point, the template starts to help a little.
HtDP 3 — nested (3:07)
Using the design recipe for nested data. Adds the idea that a reference a type declaration to a type declaration means that the template refers a template (and probably the fully implemented function uses a function).
HtDP 4 — variants (2:40)
A data type with multiple variants means that the template has a case dispatch.
HtDP 5 — lists (4:13)
A list is a data type with variants that refers back to itself, so the template sets up a recursive function.
Sets up an extended example, which starts as a data type with variants.
Extends the example so that the data type defines trees — which is just another example of a data type with variants that refers back to itself.
Sometimes, a function takes an extra argument that gets passed around as-is to other functions or recursive calls.
Sometimes, a function needs to accumulate information on a recursive call.