Context: where are we and what are we doing? Working through chapter 2 (data : lists and functional tools to work with them).
Discuss this week's homework :
Questions about any of this?
I would like to polish off the rest of chapter 2 this week, but not try to do all the exercises or try to follow all the extended examples (symbolic differentiation, huffman trees, binary search, complex numbers, ...). It's cool stuff, but too much.
Instead I propose three tasks for this week, hopefully all in reasonably sized chunks.
Take a look at the "picture language" example, mostly because it's fun. It's an example of how primitive functions combine to give more complicated behavior, and illustrates the "closure" idea from algebra. I have a DrRacket file that will run these picture display functions in picture_start.rkt. I'm assigning two problems, 2.44 and 2.45 - and you'll need to read enough to understand the ideas. I'll do a demo in class.
Read section 2.3.1 on "tagged data" that sets up the rest of the chapter, the notion of using symbols as markers for data types. So ('rectangular 2.3 4.5)
for example, for rectangular as opposed to polar coordinates. And I'm assigning 2.53, 2.54, 2.55, just to drive home how the "quoting" of symbols works.
Finally, for the rest of the chapter, I'd like you read 2.4 and 2.5, enough to understand the ideas. I've asked you in the homework to define some of the terminology. You may want to google some of these and read other sources as well; these ideas are alive and well in various programming languages these days, but they have have also grown and become more varied - think of these ideas as more of a spectrum of possibilities than a set of this-or-that choices.
We'll soon head into chapter 3, which will move us into some new ideas of state, environments, and editable data.