Actually no, page 16 defines that. Take a look at it. Maybe, there are some details there that can help you.
On Fri, Aug 12, 2011 at 1:42 PM, Pedro Henrique Antunes de Oliveira <[email protected]> wrote: > Maybe, top level execution is undefined. > > I read R5RS once, but not paying total attention, and I don't remember > it defining how top level execution should work. > > On Fri, Aug 12, 2011 at 1:40 PM, Paul Colby <[email protected]> wrote: >> >> On Aug 12, 2011, at 9:16 AM, Pedro Henrique Antunes de Oliveira wrote: >> >>> I am not sure why this happens, but once I've heard that TOP LEVEL >>> execution is different from normal execution, inside a lambda >>> expression for example. >>> >>> Try compiling this >>> >>> (let ((A #t) >>> (B 'undefined)) >>> (if A >>> (set! B 'good) >>> (set! B 'bad)) >>> (print B)) >>> >>> It runs as expected. >>> >>> Your problem is probably related to how top level evaluations are executed. >>> >>> If I recall correctly, continuations, at top level, behave differently too. >>> >>> On Fri, Aug 12, 2011 at 11:56 AM, Paul Colby <[email protected]> >>> wrote: >>>> Hi, >>>> I tried the following file as a prelude to doing conditional compilation >>>> and ran into the following snag, >>>> <snip> >> >> I already had tried this workaround but was not be able to do top level >> defines >> within the let making conditional compilation less interesting. It might be >> worth mentioning that I >> also tried my little test program with the -O4 switch and it works as >> expected yielding 'good' -On >> where n is 0, 1, 2, or 3 prints 'undefined' per the scoping rules of scheme. >> Clearly, top level >> execution differences shouldn't depend on the compilers optimization level. >> >> Thanks for taking a look. >> >> Regards >> >> > _______________________________________________ Chicken-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-users
