From 9375b49d1baf715567ef51b0011b066705d0a52a Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 11 May 2009 20:13:54 +0000 Subject: [PATCH] let-rec clarifications svn: r14776 --- collects/scribblings/mzc/zo-parse.scrbl | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/collects/scribblings/mzc/zo-parse.scrbl b/collects/scribblings/mzc/zo-parse.scrbl index 13f8e6f5bc..f77f2a6a8d 100644 --- a/collects/scribblings/mzc/zo-parse.scrbl +++ b/collects/scribblings/mzc/zo-parse.scrbl @@ -380,9 +380,13 @@ from before evaluating @scheme[rhs].} Represents a @scheme[letrec] form with @scheme[lambda] bindings. It allocates a closure shell for each @scheme[lambda] form in -@scheme[procs], pushes them onto the stack in reverse order, fills out -each shell's closure using the created shells, and then evaluates -@scheme[body].} +@scheme[procs], installs each onto the stack in previously +allocated slots in reverse order (so that the closure shell for the +last element of @scheme[procs] is installed at stack position +@scheme[0]), fills out each shell's closure (where each closure +normally references some other just-created closures, which is +possible because the shells have been installed on the stack), and +then evaluates @scheme[body].} @defstruct+[(boxenv expr) ([pos exact-nonnegative-integer?]