Reference no: EM13333263
Objective:
• To program using the functional programming paradigm.
Assignment:
Write the following functions using Scheme (or LISP if you prefer):
1. A function (binomial N k) that returns the binomial coefficients C(N, k), defined recursively as: C(N,0) = 1, C(N, N) = 1, and, for 0<k < N, C(N, k) = C(N-1, k) + C(N - 1, k -1).
2. A function (mod N M) that returns the modulus remainder when dividing N by M.
3. A function (binaryToDecimal b) that takes a binary number and returns its decimal value. (binaryToDecimal 1101) returns 13.
4. A function (addBinary binaryList) that takes a list of binary numbers and returns their decimal sum. (addBinary '(1101 111 10 101)) returns 27
5. A function (min list) that returns the smallest value in a simple list of integers.
6. A function (myRemove atm list) that removes all occurrences of the atom atm from a simple list, returning list with atm removed. myRemove should return the original list if atm is not found.
7. A function (selectionSort list) that returns a simple list of integers in ascending order using a recursive selection sort algorithm. Hint: use your min function.
All the functions must be written in a functional style and must use only the basic LISP functions car, cdr, cons, null, atom, the equality functions, the arithmetic functions, and the append function.