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.