In this section, we will attempt to understand how to reason about function types. While Julia does not provide too much help in formalizing function types, it does not stop us from doing the analysis ourselves. In some strongly typed, static OOP languages, function types are more formally defined as the combination of method arguments and return type.
Suppose that a function takes three arguments and returns a single value. Then we can describe the function with the following notation:
Let's continue the animal kingdom example and define some new variables and functions, as follows: