This shows you the differences between two versions of the page.
cs330_f2016:rackethof [2016/09/06 16:24] morse |
cs330_f2016:rackethof [2021/06/30 23:42] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====Objective:==== | ||
- | |||
- | Learn how to use first-class and higher-order functions: | ||
- | * First-class functions | ||
- | * Anonymous functions | ||
- | * Map | ||
- | * Filter | ||
- | * Fold | ||
- | |||
- | ---- | ||
- | |||
- | ====Preparation:==== | ||
- | |||
- | You will again use DrRacket, which you should have downloaded and installed for the previous labs. | ||
- | |||
- | ---- | ||
- | |||
- | ====Deliverables:==== | ||
- | |||
- | For this lab, you will need to reimplement the following functions from the previous lab using Racket's higher-order functions ''map'', ''filter'', and ''foldr'': | ||
- | * ''convertFC'' | ||
- | * ''check-temps1'' | ||
- | * ''check-temps'' | ||
- | * ''convert'' | ||
- | * ''duple'' | ||
- | * ''average'' | ||
- | * ''eliminate-larger'' | ||
- | |||
- | In addition, you will need to implement the following functions: | ||
- | * ''curry2'' | ||
- | |||
- | === curry2 === | ||
- | <code racket> | ||
- | (define (curry2 func) ...) | ||
- | </code> | ||
- | where ''fun'' is a two-parameter function and the result is a curried version of that two-parameter function. | ||
- | |||
- | ---- | ||
- | |||
- | ====Notes:==== | ||
- | |||
- | You again **do not** need to bulletproof the code to enforce proper inputs. | ||
- | Your code only needs to return correct values given correct inputs. | ||
- | |||
- | ---- | ||
- | |||
- | ====Hints:==== | ||