# 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>
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>
> <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

``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

```