[r6rs-discuss] Expansion process

From: R. Kent Dybvig <dyb>
Date: Thu Feb 22 16:48:55 2007

I'm responding as a user/implementor, not speaking for the editors.

> - It seems wrong that
> (define VAR EXP)
> would defer expanding EXP, while
> (set! VAR EXP)
> expands EXP immediately.

> Note: This is relevant if we're expanding a <toplevel body> -
> *or* this proposal is accepted:
> http://lists.r6rs.org/pipermail/r6rs-discuss/2007-January/001333.html

If (set! VAR EXP) appears as one of the top-level forms of a
<toplevel body>, the EXP in (set! VAR EXP) is deferred; in fact,
the entire set! form is deferred, because it's treated like
(define dummy (begin (set! VAR EXP) (unspecified))).

> - Deferring lambdas rather than define allows repls and load to
> work more consistently. Consider:

The expansion process is designed to make program bodies consistent with
library and lambda bodies. They may or may not be consistent with a
particular implementation's repl model, but repl behavior is not specified
by R5.92RS.

Kent
Received on Thu Feb 22 2007 - 16:48:19 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:01 UTC