Functional programming (FP) is one of those amorphous concepts in software development that means different things to different people. Despite the many shades of gray that exist in the FP spectrum, it’s easy to assert that Clojure is a functional programming language, and that that character is the root of many of its most attractive facilities and advantages.
In this chapter, we will:
Give you a reasonable introduction to what functional programming is
Explain why you should care about it
Discuss the details of Clojure’s implementation that make it a desirable functional programming language
Along the way, we hope to make the case that FP—and Clojure’s flavor of FP in particular—far from being an academic exercise, can improve your practice of software design and development just as structural- and object-oriented programming concepts have over the years.
If you are completely new to FP or initially skeptical of it, we’d urge you in particular to hang on for the ride, it’ll be worth your time and effort. Recall again from Chapter 1 the adage Clojure demands that you raise your game, and pays you back for doing so; just as you may have had to grow to learn ...