In this chapter, we started our journey by discussing how to define functions and make use of various types of function arguments, such as positional arguments, keyword arguments, and variable arguments. We talked about how to use splatting to auto assign the elements of an array or tuple to function arguments. We explored first-class functions by assigning them to variables and passing them around in functional calls. We learned how to create anonymous functions and use the do-syntax to make code more readable.
We then discussed Julia's dispatch mechanism and introduced the concept of multiple dispatch. We realized that ambiguity may exist and so we reviewed the standard tools for detecting ambiguities. We have learned how dispatch is dynamic in nature. We looked at parametric methods and how they could be useful in several use cases, such as enforcing...