Write the following functions using... (i) tail recursion without recur (ii) tail recursion with recur 1. length – calculates the length of a list 2. sum-list – adds up all of the numbers in a list of numbers 3. odds – counts the odd numbers in a mixed list of numbers & other data 4. average – calculates the average of a list of numbers (this should happen in one pass) 5. odd&even – analyses a mixed list containing numeric and other data. This function returns a suitable data-structure containing a count of the number of odd numbers and a count of the number of even numbers.