I\'ve been reading this article about closures in which they say:
The closure is a functionality of the Compiler. You don't see it, it just makes the code you write work.
Without it, the call to AddToIt(3) will fail, because the underlying lamda uses the local variable a = 27 in the scope of AddToItClusure(). This variable is does not exist when AddToIt is called.
But because of the Closure, a mechanism used by the compiler, the code works and you don't have to care about it.