sorting a list is a common example in computer


Sorting a list is a common example in Computer Science, functional languages make it very easy to express a sorting algorithm. There are a number of ways a list can be sorted, ascending order, descending order, the first/second value of a tuple etc.

a) Write a higher order function that takes as its parameters a function that will be used to compare two elements and a list to be sorted. The result of the function should be a list that has been sorted according to the comparison function. (You may define that the items in the list will be Ord a, that means you can use comparison operator '==' to compare two items). Some example output expected of this function is shown below:

Main>mySort (<) [1,5,3,6,4,1,3,3,2]

[1,1,2,3,3,3,4,5,6]

Main>mySort (>) [1,5,3,6,4,1,3,3,2]

[6,5,4,3,3,3,2,1,1]

Main>mySortlongerWord ["Hello", "The", "a", "Daniel", "Declarative"]

["Declarative", "Daniel", "Hello", "The", "a"]

b) Write a higher order function list To that takes a function f and a number n and uses list comprehension to return a list of all the numbers from 1 to n for which the function f evaluates to True.

A prime number is a number that is only divisible by itself and 1. For example the number 7 is divisible by 7 and 1 but it cannot be divided by anything else.

c) Write a function prime that takes a single integer and returns true if it is a prime number and false if it is not. Your functions should give useful error messages if 0 or negative values are given as parameters. Use currying to define a function prime To in terms of the function list To. This function should return a list of all the prime numbers up to a given value n.

Some expected output is shown below:

Main> prime 1

True

Main> prime 4

False

Main>primeTo 10

[1,2,3,5,7]

d) Write a Haskell script that will

1. Store an unsorted list of students including their:

? First and last names

? Student ID

? midterm mark

? final exam mark

? assignment 1 mark

? assignment 2 mark

? assignment 3 mark

2. Sort the list according to the last name

3. Calculate the students final grade based on the following formula:

final grade = midterm * 0.25 + final * 0.5 + ((assignment 1 + assignment 2 + assignment3) / 3.0) * 0.25

4. Print a table with proper headings containing the following information for each student.

Student ID First Name Last Name Final Grade

5. Print a footer containing the class average at the bottom of the table.

Some expected output is shown below:

Computer Science Declarative Programming Results

Student ID First Name Last Name Final Grade

01234567 Jo Bloggs A

12345678 John Doe B

23456789 Jane Doe C

. . . .. . . Class Average: B

Request for Solution File

Ask an Expert for Answer!!
Application Programming: sorting a list is a common example in computer
Reference No:- TGS0501286

Expected delivery within 24 Hours