[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: the benefits of immutability
From: "Joe Marshall" <jrm@ccs.neu.edu>
To: "Guy Steele - Sun Microsystems Labs" <Guy.Steele@sun.com>,
<vkarvone@mappi.helsinki.fi>
Cc: <el-vadimo@comcast.net>, <perry@piermont.com>, <ll1-discuss@ai.mit.edu>
Subject: Re: the benefits of immutability
Date: Tue, 19 Aug 2003 16:06:51 -0400
From: "Guy Steele - Sun Microsystems Labs" <Guy.Steele@Sun.COM>
>
> From: "Joe Marshall" <jrm@ccs.neu.edu>
> To: <vkarvone@mappi.helsinki.fi>
> Cc: "Vadim Nasardinov" <el-vadimo@comcast.net>, "Perry E. Metzger"
> <perry@piermont.com>, <ll1-discuss@ai.mit.edu>
> Subject: Re: the benefits of immutability
> Date: Tue, 19 Aug 2003 13:19:02 -0400
>
> Hmmm, a few points off:
>
> 1. When I said `the square root function and the ToString function'
> I intended that those be the `standard' Math.sqrt and
Object.toString
> operators. Although your `toString' and `sqrt' functions do
perform
> the appropriate operations, they are essentially arbitrary
objects
> with
> the appropriate name, not the functions I asked for.
>
> What, you don't like (inverse) eta conversion?
C'mon, you know eta conversion is unsound in a typed calculus!
Let me get this straight: a Lisp programmer insisting
on type soundness???
> 3. Consider these lines:
> return new Double(Math.sqrt(((Double)a).doubleValue()));}},
> return ((Fn)((Object[])a)[1]).ap(((Fn)((Object[])a)[1]).ap(b));
> System.out.println( ((Fn)(compose.ap(new
> Object[]{sqrt,toString}))).ap(new Double(10)) );
>
> Too many parenthesis.
>
> Let me get this straight: a Lisp programmer complaining
> about too many parentheses???
``He used... sarcasm. He knew all the tricks, dramatic irony, metaphor,
bathos, puns, parody, litotes and... satire.'' -- Luigi Vercotti (Michael
Palin)
The *really* funny thing is that his solution uses *far more* parenthesis
than the Lisp solution!
Thus proving its superiority.
--Guy