On Mon, 14 Sep 2009, Abdulaziz Ghuloum wrote:

> Sorry.  I guess my question isn't clear.  Let me try something else.
>
> In this one-pass expansion, do you think it's possible to expand
>
> (let ([f (lambda () 1)])
>  (let ()
>    (define (g) (f))
>    (define (f) 2)
>    (g)))
>
> to something like
>
> (let ([f0 (lambda () 1)])
>  (letrec* ([g1 (lambda () (f1))]
>            [f1 (lambda () 2)])
>    (g1))
>
> directly (i.e., without uncovering all internally-defined identifiers
> first, and without doing a second renaming pass)?

No, I cannot think of a way to do so without a second pass.

Andre

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to