[plt-scheme] set! in lazy.ss

From: jos koot (jos.koot at telefonica.net)
Date: Sun Jan 28 14:52:14 EST 2007

Thanks for your clear answer. I look forward to the toplevel forcing 
Jos Koot

----- Original Message ----- 
From: "Eli Barzilay" <eli at barzilay.org>
To: "jos koot" <jos.koot at telefonica.net>
Cc: "PLT-list" <plt-scheme at list.cs.brown.edu>
Sent: Sunday, January 28, 2007 8:07 PM
Subject: Re: [plt-scheme] set! in lazy.ss

> On Jan 28, jos koot wrote:
>> [...]
>> However, this leaves me with a question. Is there a reason why the
>> set! form requires forcing at toplevel but does not within the body
>> of a procedure? I don't understand this and any comment would be
>> very welcome.  Jos Koot
> Well, it's like any other form in the language -- function bodies have
> an implicit begin, and that !s all forms except for the last one,
> which is why it works in a function.  Toplevel forms are always
> promises which is the real problem.  One of the motivations for the
> new `#%top-interaction' special syntax that was introduced in v369.2
> is to be able to do `#%module-begin'-like processing for toplevel
> forms too -- with that, the lazy language will change to always force
> toplevel or module-toplevel forms that are not definitions -- since
> there is no point in delaying these forms.  There will also be a
> parameter that determines the kind of force you want to use in these
> cases -- ! is a good default, but you might want to have !! in some
> case, or none at all in other cases (for example, if there is a
> DrScheme GUI that allows you to click on values you want to force).
> -- 
>          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>                  http://www.barzilay.org/                 Maze is Life!

Posted on the users mailing list.