... until the collector arrives ...

This "blog" is really just a scratchpad of mine. There is not much of general interest here. Most of the content is scribbled down "live" as I discover things I want to remember. I rarely go back to correct mistakes in older entries. You have been warned :)

2008-07-31

Closures

It is increasingly bugging me how the term "closure" is becoming synonymous with "function literal", especially in the Java community now that it is just discovering functions.  People seem to forget that Pascal had closures in 1974, but it didn't support function literals.  I thought that Algol had closures first, but according to Wikipedia Scheme was the first in 1970.  Naturally it inherited function literals from LISP.  Of course, Scheme has the definitive implementation of closures which are not restricted to stack-based lifetime nesting.  This is unlike Pascal and practically every other language under the Sun which thinks that the stack is fundamental -- nobody in Java-land is talking about that.  At least BGGA has the UnmatchedNonlocalTransfer exception.  This is an improvement over Smalltalk where the VM would just crash.

I'm sure Algol had closures.  Maybe in Algol 60 but certainly by the time of Algol 68.

Blog Archive