Working with closures
MDN (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures) says this:
“A closure is a special kind of object that combines two things: a function, and the environment in which that function was created. The environment consists of any local variables that were in-scope at the time the closure was created”
Closures in functional programming are the functions that are aware of their surroundings. By this, I mean that a closure function has access to the variables and parameters defined in the outer scope. Remember that in Java and traditional procedural programming, the variables were tied to the scope, and as soon as the block got executed, local properties were blown out of the memory. Java 8 lambdas can access outer variables, but can't modify them, and this limits the capabilities if you try to do functional programming in Java 8. Let's take a look at an example where we work with closures in Kotlin.
Getting ready
We will be using IntelliJ IDEA for writing...