ABCL has interpreted closures? and compiled closures. The latter category is described at this page.
Closures of this type consist of 2 building blocks:
- The (outer) closure function of the CompiledClosure? type (which extends Closure)
- The (inner) function of the ClosureTemplateFunction? type (which also extends Closure)
The inner function is loaded once and re-used for each CompiledClosure? being instantiated (need to verify: isn't it reloaded/created every time?). The outer closure provides the required part of its environment through a 'context array'.
Each instantiated outer closure creates a 'context array' based on the state of its lexical environment at creation time.
(need to fill this in: how do they interact with parameter-construction?)