Functional Programming
Jump to navigation
Jump to search
Internal
Overview
The ability to pass functions as arguments and no shared mutable data are the cornerstones of functional programming. Functional programming is essentially different than imperative programming, where a program is described in terms of a sequence of statements that mutate state.
Closures and recursion are at the base of the functional programming paradigm.
Java 8 introduced lambda expressions, which allow behavior parameterization and functional programming.
Behavior Parameterization
Prior to Java 8, behavior parameterization was possible with anonymous classes. In Java 8, functions can be explicitly passed to the API, as parameters, and returned as results.
Function
Pure Function
Also known as side-effect-free function or stateless function.
Also see Parallelism.