Lab 3
1 Documentation
Crucial DrRacket tips Part 3:
DrRacket has a really nice documentation system. You should figure out how to use it.
Start up Firefox. You don’t absolutely have to do this first, but it makes everything else go faster.
Start DrRacket. *IN EITHER WINDOW*, type "map". Without the quotes. Hit the F1 key. Firefox should open, with a bunch of choices.
Click on the word "map" in the first entry. Voila! Documentation!
Use this all the time.
2 Problems
Develop the doublemap function, that consumes a function and a list and returns the list formed by applying the function twice to each element of the original list. So, for instance, if the function passed in multiplies a number by six, then using doublemap with that function would multiply each number in the list by 36.
Develop the zip function, that consumes two lists of the same length and returns a new list of lists where each element of the new list is a list containing both of the corresponding elements from the original lists. Show me this one when it’s complete, for lab credit.
Develop the quicksortt function, that consumes a list of numbers and sorts them like this: the empty list is already sorted. Any other list is sorted by appending the result of sorting all elements smaller than or equal to the first element to the result of sorting all elements greater than the first element. (You may already know this algorithm, as... quicksort). You will definitely need some helper functions for this. Nevertheless, it’s a straightforward structural recursion.
Optional, from HtDP: Exercises 12.4.1 and 12.4.2. Two hints: write test cases first, and follow the template for functions on lists.
Super-optional, but lots of fun: exercises 32.2.1,2,3. (modeling missionaries and cannibals)