Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Pro Database Migration To Azure Data Modernization For The Enterprise

Authors: Kevin Kline, Denis McDowell, Dustin Dorsey, Matt Gordon

1st Edition

1484282299, 978-1484282298

More Books

Students also viewed these Databases questions