...
- Do the following programming problems:
- [10 pts] Develop the function
contains?
, which that consumes a symbol and a list of symbols and determines whether or not the symbol occurs in the list. - [10 pts] Develop the function countfunction
how-many-symbols
, which that consumes a list of symbols and produces the number of items in the list. - [10 pts] Develop the function
count-numbers
, whichhow-many-numbers
that counts how many numbers are in a list of numbers. - [20 pts] Develop the function
avgaverage-price
. It consumes a list of toy prices and computes the average price of a toy. The average is the total of all prices divided by the number of toys. toy prices are numbers. [Hint: develop several auxiliary functions (following the design recipe to develop each auxiliary function) that you can use to make the definition ofaverage-price
very easy. - [10pts] Develop the function
elimeliminate-exp
to eliminate expensive toys. The function consumes a number, called mp mp (short for "maximum price) and a list of toy prices, calledlotp
, and produces a list of all those prices inlotp
that are below or equal tomp
. For example,(check-expexpect (elimeliminate-exp 1.0 (conslist 2.95 (cons .95 (cons 1.0 5) (conslist 5 empty))))).95 1.0)) = #true
[10pts] Develop the function function
delete
to eliminate specific toys from a list. The function consumes the name of a toy, calledty
, and a list of names, calledlon
, and produces a list of names that contains all components oflon
with the exception ofty
. For example,(check-expect (delete 'robot (list 'robot 'doll 'dress empty)) (list 'doll 'dress))
= #true
[20pts] A list can be used to represent a finite set. For example,
(list 'c 'o 'm 'p)
represents the set of symbols {'c , 'o, 'm, 'p}. In such a representation, we assume all elements in the list are unequal. Develop the function
power
that consumes a list of symbols los (representing a set) and produces a list of list of symbols representing the power set (set of all subsets) of los. Be sure to do all the assigned parts of each problem. In the book, each problem ends with a block icon. Online, each problem ends with a hand icon.
- [10 pts] Develop the function
- In problem 9.5.7, the book asks you to write a function that checks for the empty list input as an error and throws an aborting error in the case. (The purpose statement should document this behavior!) In the newest version of DrScheme, the
error
function take a single argument not two arguments as documented in the book. We recommend using a string (text enclosed in double quotation marks like"This is sample string"
. You can test the error throwing behavior of a function usingcheck-error
which is documented in the DrScheme Help Desk. - Read chapter 8 very carefully before doing the problems from that chapter. This chapter is not padded with lots of wordy examples.
In writing hand evaluations for problems 8.3.1 and 8.3.2, follow the same format as the evaluation examples given in the Scheme HW Guide.- In problem 9.5.7, the book asks you to write a function that checks for the empty list input as an error and throws an aborting error in the case. (The purpose statement should document this behavior!) In the newest version of DrScheme, the
- To follow the design recipe, you must write down the purpose, contract, at least 5 well-chosen examples, write the code for the function, and include illustrative test cases for the function (using at least the examples you developed ahead of time). You can bundle the examples and test cases together as a block of
check-expect
invocations. Your chosen examples should illustrate the output you expect, and the test cases should produce the actual output (they should not be commented). If the function processes an inductive type, make sure that your examples include the base case(s) and sample inductive cases.
Submit your homework using the Comp 211 Owlspace page.