•Write a function calculateArea that takes two arguments, length and width, and calculates the area of a rectangle. Use multiple dispatch to implement the function so that it works with both scalars and arrays of numbers.
•Create a custom type Animal with properties name and species. Implement a function speak that takes an Animal object and returns a string that says “Hello, my name is {name} and I am a {species}.” Use multiple dispatch to make sure that speak works with any subtype of Animal.
•Create a function calculateDistance that takes two arguments: pointA and pointB, where each argument is a tuple with two elements representing the x and y coordinates of a point in a two-dimensional space. Implement the function using multiple dispatch so that it works with both tuples and arrays of tuples.
•Create a function getAverageGrade that takes a variable number of arguments, each representing a grade. The function should return the average of all grades passed to it. Use multiple dispatch to allow the function to accept any number of arguments of any type that can be converted to a number.