### CSC 533: Organization of Programming Languages Fall 2002 HW5: Scheme Programming

For this assignment, you are to define the following Scheme functions. For simplicity, place all of your function definitions in a single file named hw5.scm. Be sure to comment each function as to its behavior.

1. Define functions for converting temperatures from Fahrenheit to Celsius, and vice versa. For example, (fahr->celsius 212) should evaluate to 100, while (celsius->fahr 0) should evaluate to 32. The formula for converting from Fahrenheit to Celsius is: tempInCelsius = (5/9) * (tempInFahrehneit - 32)
2. Define a function named wind-chill that takes two inputs, a temperature (in degrees Fahrenheit) and a wind-speed (in miles per hour), and returns the corresponding wind-chill factor. The formula for computing the wind chill is:

 wind-chill = { temp if wind <= 3 35.74 + 0.6215*temp + (0.4275*temp - 35.75)* wind0.16 otherwise

For example, (wind-chill 38 2) should evaluate to 38 since a wind-speed of only 2 miles per hour has no effect on the temperature of 38 degrees Fahrenheit. Note: the return value for this function should be inexact.

3. Define a function named num-occur that takes two inputs, an atom and a list, and returns a count of the number of times the atom appears in the list. For example, (num-occur 'x '(z x e x)) should evaluate to 2.

4. Define a function named remove that takes two inputs, an atom and a list, and returns the list with each occurrence of the atom removed. For example, (remove 'x '(z x e x)) should evaluate to (z e).

5. Define a function named subst that takes three inputs, two atoms and a list, and returns the list with each occurrence of the second atom replaced by the first. For example, (subst 'a 'x '(z x e x)) should evaluate to (z a e a).

6. Define a function named prime? that takes one input, a positive integer, and returns #t if that number is prime, else #f. For example, (prime? 6) should evaluate to #f, while (prime? 7) should evaluate to #t. Your function should only utilize tail-recursion (perhaps a help function will be required).