lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


How about
x[] += "foo"
or
x += "foo"

I'm a beginner and I can understand those as appending to a list.

On Sun, 09 May 2010 12:55:11 -0400, Eike Decker <zet23t@googlemail.com> wrote:

2010/5/9 Florian Weimer <fw@deneb.enyo.de>:
* Klaus Ripke:

Could x[] be syntactic sugar for x[#x+1] ?
It would make appending to lists so much nicer.

"x[] = 5" looks about as cryptic to newcomers as "x[#x+1] = 5".  I'm
not sure if it is an improvement.  If this operation is so common that
it warrants its own syntax, something completely different might be
better.  But then, "table.append(x, 5)" doesn't look too bad, either.

I don't care about beginners, but

  some_complex_name[#some_complex_name+1] = "foo"

is surely worse than

  some_complex_name[] = "foo"

not to mention

  some_function_returning_table(...)[] = "OK"

... which requires currently temporary variables.

The [] operator is maybe the one and only thing that I actually like
about PHP. It makes sense in my opinion, as it's a very common
operation when operating with stacks or queues.
It could be somewhat done right now using metatables and using a
special key, e.g.

  arr[nil] = "append"

but, a [] operator looks more useful to me than fidling around with
metatables for such a basic functionality.

Adding another thing to the wishlist: table.remove should allow a
third parameter to allow efficient table slicing, e.g.

  table.remove(arr,1,100)

instead of

  for i=1,100 do table.remove(arr,1) end

(assuming that arr is really huge)

Cheers,
Eike



--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/