Julia is a multi-paradigm programming language, but a functional programming style is far more common in Julia than in other mainstream languages you may be familiar with, such as Python, Ruby, Java, or C++. Thus, it is natural to have an understanding of the principles of functional programming to become a good Julia developer.
Functional programming is not always the best approach to solving every problem. In this chapter, you will learn to build up a password-keeping service in both an object-oriented and a functional style, allowing you to explore the pros and cons of different programming styles (paradigms). Before building up a larger code example you will look at the core building blocks of functional programming, such as higher-order functions, closures, function chaining, and composition.