# BYU CS classes

### Site Tools

cs330_f2016:racketbasics

### Objective:

Learn the basics of the Racket Language and functional programming in general.

### Deliverables:

For this lab, you will need to implement the following functions and data structures in Racket:

• sum-coins
• degrees-to-radians
• sign
• new-sin

#### sum-coins

(define (sum-coins pennies nickels dimes quarters) ...)

where pennies, nickels, dimes, and quarters are all non-negative numbers and the value returned is the total value of the coins in cents.

(define (degrees-to-radians angle) ...)

where angle is a number representing a value represented in degrees and the value returned is the equivalent representation in radians. (For those who have forgotten their trig: radians = degrees / 180 * PI.)

#### sign

(define (sign x) ...)

where x is a number and the value returned is -1, 0, or 1 depending on whether x is negative, zero, or positive respectively.

#### new-sin

(define (new-sin angle type) ...)

where angle is a number representing either degrees or radians, type is either 'degrees or 'radians (a symbol) indicating how angle is represented, and the value returned is the sin of angle.

Hint: use symbol=? to test for symbol equality: (symbol=? x 'degrees).

### Notes:

You do not need to bulletproof the code to enforce proper inputs. Your code only needs to return correct values given correct inputs.

### Hints:

Try clicking on the Step button to walk through your code and watch the equivalent sequence of substitutions that are performed.