[racket-dev] [racket] Multiple return values

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Fri Dec 16 12:02:53 EST 2011

I have not read Bob's blog, but Bob and I arrived at this 
conclusion at about the same time and we discussed it extensively
during my sabbatical at CMU in 93/94. -- I am not at all surprised
that one opinion reminds you of the other. -- Matthias

On Dec 16, 2011, at 11:57 AM, Jim Wise wrote:

> Matthias Felleisen <matthias at ccs.neu.edu> writes:
>> My hunch is that I forgot my meta-meta-lessons from the 1980s. Back then
>> the standard argument for lazy programming was that 'the regular lambda
>> calculus is uniform and easy to use and you never have to think about 
>> when substitution works'. [This argument applied both for the misleading
>> idea of thinking 'applicative reduction' -- whatever that really is --
>> had anything to do with CBV or the Plotkin-style reasoning.] Worse, when
>> you generalize this to imperative languages, it looked like it all broke
>> down and therefore it wasn't any good either. My reply used to be that 
>> pragmatics of programming comes first and we have got to develop the 
>> reasoning tools for the pragmatically good languages, though with some
>> give and take. [My argument works equally well for axiomatic condemnation
>> of call/cc and friends.]
> This reminds me (tangentially?) of a post from Bob Harper about why lazy
> programming as a default is awful (and by extension why ML is better
> than Haskell for reasoning about code, both in teaching and in real
> world programming -- though the same points could be easily used for
> Racket ):
>  http://existentialtype.wordpress.com/2011/04/24/the-real-point-of-laziness/
> -- 
> 				Jim Wise
> 				jwise at draga.com

Posted on the dev mailing list.