[racket-dev] [racket] Multiple return values
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