Chapter 2. Core concepts in functional programming
This chapter covers
- Understanding concepts and foundations
- Programming with immutable data
- Reasoning about functional code
- Working with functional data types and values
If you ask three functional programmers what they consider the most essential aspect of the functional paradigm, you are likely to get three different answers. The reason is that functional programming has existed for a long time and there’s a wide range of diverse programming languages. Every language emphasizes a different set of aspects while giving less importance to others. Most of the concepts are to some extent present in all functional languages.
The central part of this chapter focuses on these common ideas, exploring the basic features and techniques that functional programmers have in their toolset. We’ll investigate the concepts from a high-level perspective, and you’ll see how they fit together to form one coherent way of tackling problems.