[plt-scheme] to define, or to let

From: Bradd W. Szonye (bradd+plt at szonye.com)
Date: Sat Mar 20 22:28:08 EST 2004

On Sat, Mar 20, 2004 at 10:26:42PM -0500, Eli Barzilay wrote:
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> 
> On Mar 20, Richard Cleis wrote:
> > Syntax: <Bindings> should have the form ((<variable1> <init1>) ...),
> > 
> > One restriction on letrec is very important: it must be possible to
> > evaluate each <init> without assigning or referring to the value of
> > any <variable>. If this restriction is violated, then it is an
> > error.
> 
> Section 1.3.2:
> 
>   When speaking of an error situation, this report uses the phrase "an
>   error is signalled" to indicate that implementations must detect and
>   report the error.  If such wording does not appear in the discussion
>   of an error, then implementations are not required to detect or
>   report the error, though they are encouraged to do so.  An error
>   situation that implementations are not required to detect is usually
>   referred to simply as "an error."

Which is why it's dangerous and non-portable to rely on the
initialization order.
-- 
Bradd W. Szonye
http://www.szonye.com/bradd


Posted on the users mailing list.