+
+@node closure
+@unnumberedsubsec closure
+
+@cindex closure
+@cindex simple closure
+
+In Scheme, a @strong{closure} is created when a function, usually
+a lambda expression, is passed as a variable. The closure contains
+the function's code plus references to the lexical bindings of the
+function's free variables (i.e. those variables used in the
+expression but defined outside it). When this function is applied
+to different arguments later, the free variable bindings that were
+captured in the closure are used to obtain the values of the free
+variables to be used in the calculation. One useful property of
+closures is the retention of internal variable values between
+invocations, so permitting state to be maintained.
+
+A @strong{simple closure} is a closure whose expression has no free
+variables and hence no free variable bindings.
+
+A simple closure is represented in LilyPond by a smob containing
+the expression and a method to apply the expression to a passed
+list of arguments.
+
+