Re:Closures and Objects Are Equivalent (2013)
by tempodox on Sunday November 20, 2022 @04:48AM
(#33679669)
> The namesake, lambda calculus, doesn't have it (I think?).
Lambdas in the Lambda Calculus have to be closures, how else would you build functions of multiple arguments? Think:
λx.λy.(x + y)
If they weren't closures, `x` would be unbound in the inner lambda.
Re:Closures and Objects Are Equivalent (2013)
by fulafel on Sunday November 20, 2022 @06:30AM
(#33680104)
Ah, right. And apparently this was a prime motivation to for the first Lispy closures implementation, which was called... Scheme. https://en.wikisource.org/wiki/Scheme:_An_Interpreter_for_Ex...
"we have implemented an interpreter for a LISP-like language, SCHEME, based on the lambda calculus [Church]"
Eg Lisp had lambda expressions for a long time (20 years? 30 years?) before lexical scoping made it in. Python also had its lambda and nested functions for a long time before lexical scopes came to the language. The namesake, lambda calculus, doesn't have it (I think?).