[plt-scheme] to define, or to let

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Mon Mar 22 14:48:47 EST 2004

On Mar 22, 2004, at 3:38 AM, Anton van Straaten wrote:

> If there is under-specification present here, surely it is actually in 
> the
> language which disallows the specification of order independence, 
> despite
> such order independence being a manifest property of large parts of 
> real
> world systems?

I agree with this part of your message. R5RS's (non)specification of 
function application is similar to its "overloading" of lambda. As you 
perfectly well know, in R5RS lambda abstracts *and* allocates a mutable 
piece of storage. If you think about it for just one moment, you see 
that this non-orthogonality at an extreme. (Still, I won't argue its 
occasional practicality.)

Now think about function application in the same way. It combines apply 
proper with *sequential* non-determinism. Why? I have thought about 
this for a long time, and I can't find a reason for the combination of 
non-determinism and sequentiality.

Turn around and think about the following. Say we introduce a construct 
"evaluate these expressions in any order and   give me all the values." 
Call it values*. You can then use the resulting values for function 
application (apply proper) or for the construction of a data structure. 
Why just use them for apply?

Enough said -- Matthias

Posted on the users mailing list.