I’m studying functional programming and lambda calculus but I’m wondering
if the closure term is also present in the Church’s original work or it’s a more modern
term strictly concerned to programming languages.
I remember that in the Church’s work there were the terms: free variable, closed into…,
and so on.
Consider the following function definition in Scheme:
The notion of explicit closure is not required in the pure lambda calculus, because variable substitution takes care of it. The above code snippet can be translated
When you apply this to a value
z, it becomesby β-reduction, which involves substitution. You can call this closure over
aif you want.(The example uses a function argument, but this holds true for any variable binding, since in the pure lambda calculus all variable bindings must occur via λ terms.)