March 19th Monday (三月 十九日 月曜日)

来源:互联网 发布:mac怎么玩lol国服 编辑:程序博客网 时间:2024/04/20 02:09

  When the expander finds a nondefinition, it defers its expansion and continues scanning for definition.  Once it reaches the end of the set of forms, it processes the deferred right-hand-side and body expressions, then residualizes the equivalent of a letrec* form from the defined variables, expanded right-hand-side expression, and expanded body expressions.  For each body expression <expression> that appears before a variable definition in the body, a dummy binding is created at the corresponding place within the set of letrec* bindings, with a fresh temporary variable on the left-hand side and the equivalent of (begin <expression> (unspecified)) on the right-hand side, so that left-to-right evaluation order is preserved.  The (begin ...) wrapper allows <expression> to evaluate to zero or more values.

  Keyword bindings established by define-syntax are visible throughout the body in which they appear, except where shadowed by other bindings, and nowhere else, just like variable bindings established by define. All bindings established by a set of internal definitions, whether keyword or variable definitions, are visible within the definitions themselves. 

原创粉丝点击