Hi --

On Wed, 4 Nov 2009, Charles Oliver Nutter wrote:

> Of course I had to jump in here.
>
> Yes, a++ and ++a could easily be rewritten by the parser into the
> appropriate increment+set of a and the expression either returns the
> incremented value or the non-incremented value. And I would like to
> see that added. It doesn't fundamentally change the expectations of
> the programmer, and it provides a one-character-shorter version of
> a+=1. There's really no reason it shouldn't be added, because even in
> Java or C, you are *never* modifying arbitrary references to that
> value...you are *always* re-assigning the value a given variable
> points to.
>
> This example:
>
> a = 1
> b = a
> a++
>
> Would cause exactly the same results in every language I've worked
> with...b would be 1 and a would be 2. The ++ operator never modifies a
> value, it modifies what value the variable has assigned to it. If it
> were modifying a value, then using ++ to bump a pointer through memory
> offsets would have horrible side effects for anyone else assigned that
> pointer value.
>
> I have seen no convincing argument as to why ++ is not supported in Ruby.

It would, I think, be quite anomalous, since it would be the only case
(that I can think of anyway) of an assignment expression that didn't
look and feel like an assignment expression.

I'm also not sure what problem it would be solving, other than adding
to the "make <language> users feel at home in Ruby" effect. But I tend
to think that Ruby should move away from, not towards, doing things
for exclusively that reason.


David

-- 
The          Ruby training with D. Black, G. Brown, J.McAnally
Compleat     Jan 22-23, 2010, Tampa, FL
Rubyist      http://www.thecompleatrubyist.com

David A. Black/Ruby Power and Light, LLC (http://www.rubypal.com)