Write a higher order function list to that takes a function


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 fevaluates 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 listTo. This function should return a list of all the prime numbers up to a given values.

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

Solution Preview :

Prepared by a verified Expert
Programming Languages: Write a higher order function list to that takes a function
Reference No:- TGS0669664

Now Priced at $40 (50% Discount)

Recommended (92%)

Rated (4.4/5)