Tutorials are optional materials that generally provide another example of the course content. The approach is often as a “think-aloud”: here’s what I’m thinking as I approach this problem. Some videos reference outdated exercise numbers from a different term. In those cases, you can find the correct exercise in the videos’ description.
The Design Recipe. Writing basic functions. Details of the design recipe.
Exercise: Writing describe-string
.
Working with string functions. Note: the in-video exercise number has changed; it is actually M02, slide 21.
Working with Lists. Working with lists using map and foldr. Writing a helper function for foldr. Using map on two lists at once.
Exercise: waldo
.
Stepping through a function that uses cond
. Note: the in-video exercise number has changed; it is now M04, slide 14.
Using foldr
with cond
.
Writing a helper function for foldr
that uses cond
. Boolean expressions. Converting a string to a list.
More Practice with foldr
.
Writing a function in 3 different ways using foldr
. Note: this video references an exercise that no longer exists in the course notes.
ALFs with Lambda. Four short problems solved using abstract list functions and lambda.
Exercise: Writing my-member?
.
Recursion on a list, with an unchanging value. Working with Any
. Following the list template. Note: this exercise is on slide 46 of M06.
Exercise: Writing drop-e
.
Writing a function that needs to be a wrapper function. Recursion on a list. Note: the names of functions have changed, but this exercise corresponds to the problems on slide 60 and 64 of M06.
Difference between cons
and list
.
Comparing the behaviour of the two functions, and their use in recursive functions. Note: some reference is made to cons
having been taught before list
. This was from a previous term, and the difference in order is not important to the content of the video.
Exercise: Writing sum-to
.
Recursion on a Nat
using the countdown template. Note: this exercise can be found on slide 14 of module 7.
Stepping Booleans.
Tracing a user-defined function including and
, or
, and not
. Note: the piazza posts referenced were from a previous term.
Lists inside lists.
Finding items with rest
and first
; working with lists inside lists inside lists inside lists….