The Three Ms
This chapter is devoted to a discussion of Julia’s three Ms, which, when combined, are relatively unique in common programming languages.
These are as follows:
- Multiple dispatch: The feature in Julia that gives it the ability to generate functional code specific to the parametric types of the arguments passed, which provides speed equivalent to more conventionally compiled languages
- Metaprogramming and macros: Dynamic features to extend Julia using “genuine” macros created at runtime, adding Lisp-like functionality to the language
- Modularity: The packaging of type structures, functions, and macros into modules that are used as the basis for packages
We have come across some examples of all these before in the preceding chapters and will take some time out here to discuss them in more detail.