===== CS 111 - Week 4 Lecture 2 - 2024-09-19 ===== ===== TODAY WE WILL: ===== * announcements * review cond * refactoring example * another example: dropping penguins! * interval data, enumeration data * example with enumeration data * prep for next class ===== * should be starting Homework 3; deadline/at least first attempts due by this Friday, Sept. 20 * submit early, submit often! ===== intervals and enumerations! interval data and enumeration data ===== * these both happen to be kinds of data where branching is useful! * from course text: "An interval is a class of ... numbers via boundaries" * these boundaries tend to define a finite number of categories * but each category MIGHT contain many things! * one approach in a function involving interval data is to have a cond with a branch for each category of data (for each category of numbers) * (you might find you can refactor and use fewer branches, or even no branches -- BUT this is a good place to start!) * CS 111 class style: for interval data, you need at least one test per category and at least one test per boundary between categories * functions banana-report, bad-star-size?, and draw-penguin-scene are functions involving intervals -------- * There's also ENUMERATION data -- (text calls them enumerations) * when your data is a value from a relatively small number of discrete, specific values * like the possible colors of a traffic light! like the possible arrow keys on a game controller! like the possible answers for a multiple-choice question! * one approach in a function involving enumeration data is to have a cond with a branch for each value in the enumeration, PLUS an else branch if the function's purpose describes something to do in the case of some other value * (again, you might find you can refactor and use fewer branches, or even no branches -- BUT this is a good place to start!) * CS 111 class style: you do need a test for each of the enumeration's values -- and IF your function's purpose specifies a particular result for a value NOT in the enumeration, you should include a test for that also * function next-sound, in today's in-class examples, is a function involving an enumeration