Note: This is a class activity, nothing needs to be delivered.
Place all the requested functions and unit tests in a name space called
arithmetic.
Assume you have these function definitions:
(defn add1 [x] (conj x ())) (def sub1 rest) (def equal-zero? empty?) (def zero ())
Write in Clojure the functions described in the following table, using only add1, sub1, equal-zero?, zero, and any function written as part of this same exercise. Assume that the parameters a and b represent natural numbers (nonnegative integers).
| Function | Description |
|---|---|
| (add a b) | Returns a plus b. |
| (subtract a b) | Returns a minus b. Assume that a ≥ b. |
| (multiply a b) | Returns a times b. |
| (equal? a b) |
Returns true if a is equal to b, otherwise returns false.
|
| (less? a b) |
Returns true if a is less than b, otherwise returns false.
|
| (quotient a b) | Returns the quotient of dividing a by b. |
| (remainder a b) | Returns the remainder of dividing a by b. |
| (power a b) | Returns a raised to the power of b. |