On Dec 27, 12:54 pm, MonkeeSage <MonkeeS... / gmail.com> wrote:
> On Dec 27, 9:55 am, Sebastian Hungerecker <sep... / googlemail.com>
> wrote:
>
> > George wrote:
> > > What would you expect this to do?
>
> > >   [].last = 1
>
> > The same thing as "[][-1] = 1", I'd imagine.
> > The problem I'm seeing would be this: If you allow arr.last = x, you'd also
> > have to allow arr.last(n) = x if you want to be consistent, but that's not
> > syntactically possible.
>
> > --
> > NP: Katatonia - Endtime
> > Jabber: sep... / jabber.org
> > ICQ: 205544826
>
> Agree. It's tempting to treat #first / #last as 0 / -1, but in
> actuality they are method calls and simply return a value; they don't
> subscript an array. Setting #last is not semantically different than
> [1,2,3].pop = 4, it's just that #last is just a bit more subtle.

I don't see what you are getting at here. #pop is destructive, #last
is not. What does #last return when it is called? It returns a
reference to the last element. So why would #last= do anything other
then set the reference of the last element? Seems obvious to me. So we
can't do last(n) = x, due to syntax constraints, oh well. It would
still be convenient to have the obvious n=1, no arg case. I find that
my programs are usually easier to read when I can use words rather non-
alphabetic symbols.

T.