[plt-scheme] to define, or to let

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sun Mar 21 11:15:59 EST 2004

On Mar 21, 2004, at 9:36 AM, Matthew Flatt wrote:

>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> Some responses to various parts of the thread:
> 1. Evaluation order is a different issue from allowing access to
>    previously-bound variables in the right-hand side of a `letrec'
>    binding.
> The latter is a case of MzScheme ignoring "is an error" in the
> standard. I think there's only one other case like this: if an
> expression in a `begin' sequence returns multiple values, MzScheme
> always allows it (except for the last expression, where it depends on
> the dynamic context).

This is an extra that bring mzscheme close to safety, a property that 
R5RS doesn't seem to care about yet is critical for a unityped 
("dynamically typed", "taggeed") programming language that should play 
a role over the next 50 years.

C++ is bad because its type system is unsound.  (R5RS) Scheme is bad 
because it isn't (as) safe (as ordinary human reasoning can make it). 
Java and mzscheme show that these flaws don't have to be an integral 
part of languages.

> 2. MzScheme is not actually R5RS-compliant.

Thanks for not caring about a standard that's subpar.
> 3. Changing MzScheme's `letrec' to match R5RS.
> I don't know.

Please don't. It is perfectly okay if someone wants to make the RnRS 
language in DrScheme conforming to some ill-defined, 
committee-regulated (non)standard. I never use that language. But keep 
mzscheme clean.

I'd like to thank Matthew here for showing with mzscheme that Scheme is 
a language that is worthy of some consideration. Without his efforts, 
Scheme wouldn't deserve the attention that it still gets.

-- Matthias

Posted on the users mailing list.