On Sun, Dec 1, 2013 at 12:00 PM, John Cowan <[email protected]> wrote:
> Alex Shinn scripsit: > > > I'm not sure we need bother clarifying this. Interleaving > > assignment is both the most natural and only realistic > > interpretation of the existing text. You have to stretch > > it quite a lot to think that it allows the <init>s to be > > evaluated outside the order of the assignments. > > Well, someone on #scheme was complaining about it being unclear, > and when I looked at it, I realized that I had never really > understood letrec* before. He was under the impression that > letrec* is to letrec as let* is to let; that is, that letrec* > expands to nested letrecs. If that is the misconception, then your clarification doesn't help - in nested letrecs the order of <init> evaluation and variable assignment would be the same as it is now. Perhaps instead we could just add some more examples? This should help understanding better than lengthening the prose. Anyway, Riastradh set both of us > straight, and clarified that although some Schemes implement > letrec as letrec*, this is definitely a bug. Using letrec as though it were letrec* is indeed a bug. Specifically, it "is an error", which means implementations are free to handle this situation however they want, including raising an exception or simply treating it as letrec*. -- Alex
_______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
