Abstract (very slightly updated) of Ulrik Schultz's Masters Thesis (DAIMI '97) ---------------------------------------------------------------------- Block structure is a fundamental mechanism for expressing the scope of variables in a computation. Scope can be expressed either explicitly with formal parameters or implicitly with free variables. We discuss the transformations between explicit and implicit scope. Making scope explicit is current practice in functional programming: it is called ``lambda-lifting.'' Our thesis addresses the transformations between explicit and implicit scope. We describe the "lambda-dropping" transformation that restores implicit scope in a lambda-lifted program. We show lambda-dropping to be a useful transformation that can be applied to clarify the structure of programs and to increase the efficiency of recursive functions. In addition, we demonstrate that lambda-dropping is of practical use as a back-end in a partial evaluator.