Functional Programming (FP) is a paradigm in software development that uses pure functions to build software. Some of the key concepts in functional programming are immutability, referential transparency, pattern matching, function composition, lazy evaluation and so on.
Functional programming makes it easier to reason about a piece of code. It makes testing and troubleshooting easier as the mutable states are largely avoided.
Scala brings the power of functional programming into the JVM. In this series, we discuss about the various functional programming concepts and libraries in Scala.