- Breaking It Down: What, When, How
In order to grasp the fundamentals of functional programming, it is essential to understand the context in which it may be applied. As development projects become larger, code may lead to more complexity in which understanding how the code operates comes in the way of understanding of what it accomplishes. Code accumulation in large-scale projects may additionally result in a greater increase of lines of code if the project operates on an imperative approach only — resulting in a greater exposure to errors.

.forEach
method of the Stream class operating
on a Java array
By applying techniques of functional programming (as displayed in Figure 1), developers are able to write higher-level code with predefined functions provided by libraries. It enables abstraction by eliminating code details where the developer may instead focus on code accomplishment and work in a more productive and concise manner.