I'm doing square root matrix.

So, I'm gonna ask you to take the square root of matrix.

What does it do here?

Well, the matrix I gave it was a 3x2 matrix, 1, 4, 9,

16, 25, 36, I specified it right here in the input argument.

And what square root does is go to each one of these elements,

take the square root, and put it in the corresponding position in

an output matrix that's the same size as the input matrix.

So, we got square root of one is one, square root of four is two,

nine goes to three, square root of 16 is four, 25 square root is five.

So, this is an example of something that's not supported

by all programming languages, it's polymorphism.

If the type of an input argument to a function can vary from one call of

the function to another, it's called a polymorphic function.

Polymorphic means having multiple forms and polymorphism is a powerful feature,

because it allows one function to handle a huge variety of inputs,

which can save us a huge amount of work,

because we avoid having to write a huge variety of functions.

Furthermore, as we'll see, not only can the type of the input arguments vary, but

the number of arguments can vary, as well, and we can make the function's behavior

change when the type or number of arguments changes.