Question
Objective: To program using the functional programming paradigm. Assignment: This is another one of the do-it-yourself research assignments. Write the following functions using Scheme (or
Objective:
To program using the functional programming paradigm.
Assignment:
This is another one of the "do-it-yourself" research assignments.
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 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. What to Hand In: Attach your source code files to Blackboard. Include results of your functions and the output produced from testing your functions using the following data: 1. Test binomial for C(4,0), C(8, 8), C(3,2) and C(7, 4). 2. Test mod for arguments 9 and 5, 7 and 9, 100 and 37, 20 and 5, -11 and 3. 3. Test binaryToDecimal with arguments 0, 1011, 111111, 10001. 4. Test addBinary with (1101 111 10 101), (0), (11011). 5. Test min with (4 5 1 2 5), (3), (), (5 5 5) 6. Test myRemove with atom a and list arguments (), (a), (a b c d a b a a), (x y z), (a (x y z) (r s t a)), (((a (l a) b) a) m a). 7. Test selectionSort with lists (), (5), (6 10 23 12 2 9 18 1 0 15), (3 4 7 3 7 7 4 3 2 3 7) PLT Scheme can be fond at: www.plt-scheme.org
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started