Scheme has the notion of the dynamic extent of a
procedure call. A number of standard Scheme procedures and
syntaxes
like dynamic-wind, call-with-current-continuation,
and parameterize
deal with the dynamic extent indirectly. The same holds true
for the procedures and syntaxes dealing with continuation
marks as defined by SRFI
157.
This SRFI reifies the dynamic extent into a first-class value together with a well-defined procedural interface and a syntax to create procedures that remember not only their environment at creation time but also their dynamic extent, which includes their dynamic environment.