0. Introduction. This assignment asks you to write a Python function that sorts a tuple of integers using the techniques of functional programming. This is the last Python lab for this course. We're not done with Python yet: there iss a Python project yet to be assigned, and there will be questions about Python on future examinations. 1. Theory We say that a sequence of integers is sorted if it has elemente,e, e in that order, and also e,e, ei We can sort such a sequence S using the following algorithm 1. If S has no elements, then it is already sorted, so return S 2. Choose the largest element m from S. If m appears more than once in S, then choose any appearance of m 3. Make a new sequence that is like S, except that the first appearance of m is removed. 4. Sort the new sequence by applying this algorithm rccursively 5. Return the result of adding m to the end of the sorted sequence For example, suppose that the algorithm is implemented by the Python function sort, which takes a tuple of integers as its argument. We can trace the algorithm like this, where is Python's concatenation operator, andmeans returns Sort [ { 1, 2, 3, 1)) sort((1, 2. 1)) + (3, ) Sort((1, 13, + 12,) + (32) Note that the algorithm does not use change the values of variables after they are assigned, and does not use mutable data structures. As a result, it can be implemented using the techniques of functional programming that were discussed in the lectures. 2. Implementation. You must implement the sorting algorithm described in the previous section by defining the following Python functions. You must use the same names for the functions as are shown here but you may use different parameter names if you like. Throughout, assume that T is a tuple of integers. Sort (T) Return a new tuple that is like T, except that its elements are sorted (see above). It works by calling Maximum and Remove somehow