CSci 1301: Problem Set 5
Due: Wednesday, Decemeber 5th at 11:59pm
Please make sure that every function has a signature, description, and test
cases (as needed).
Problem 1 (10 points)
Exercise 250. Before you write the function,
copy tab-sin
and tab-sqrt
into your Racket file.
Then:
- Write check-expect (or check-within, due to inexact results)
tests for
tab-sin
and
tab-sqrt
. Don't forget tests for the base cases.
- Write check expect (or check-within) tests for
tabulate
to show how it can be used to work as
both of the above functions (what functions do you pass to it?)
-
Write the abstract function
tabulate
and test it.
-
Write its signature (use the format that we used in class or the one
the book uses - both are fine).
-
Write one more example of what it can be used for (use check-expects).
Note that this function is similar to a predefined Racket function
build-list
.
Problem 2: Using predefined functions (14 points).
In this task you will be using map
and filter
general functions given
here and foldl, foldr
to perform different tasks. You can use helper functions when
the functions that you need you need to pass to map
or
filter
aren't defined in Racket. Alternatively you may use lambda
if you would like (see section 17.1 in the book).
You may use a combination of function for each problem.
-
Add all of the x coordinates in a list of
posn
structures.
-
Create a list of 20 squares (images), in which the first
one is 1-by-1 pixel, the second one is 2-by-2, and so on
(hint: use build-list)
-
Create a list of all even numbers from 0 to 100 (use build-list and
possibly other functions, although you can also just do it with
build-list)
-
Sort a list of strings by length (shortest first)
-
Sort a list of positions by their distance from (0,0). Note that
you need to use
sort
function and the result must be a
list of positions (not of numbers).
-
Count the number of elements in a list (do not write your own
recursive function!)
-
Count the number of odd numbers in a list.
CSci 1301
course web site.