lua-users home
lua-l archive

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


Top posting to nobody in particular.

I was arguing something about lengths or arrays at some point. Some helpful Lua List member kindly pointed something out to me:

Lua does not have sequences. It only has tables.

To put a positive spin on it: Lua has tables as it’s only data structure, at least as of 5.4, which will eliminate the limited ... (perhaps helped along by threads like this). 

There is nothing that can’t be represented as a table and if you want something fancy, you have userdata. Adding sequences solves no problems. 

“One data structure” is one of Lucas most important traits. I recommend learning to enjoy it and to play with that beautiful limitation. 

-Andrew

On Sun, Jan 21, 2018 at 06:15 Petri Häkkinen <petrih3@gmail.com> wrote:

On 21 Jan 2018, at 12.33, Elias Hogstvedt <eliashogstvedt@gmail.com> wrote:

I don’t get it. Where’s the ambiguity in e. g. { 1, 2, 3, type = ”int16” } ?

I would say it's ambiguous because I'm not sure if this is "safe" to do. I've personally never done this and would put a new table inside the table to hold the numbers. If this has no side effects then it's more or less a shortcut for {array = {1, 2, 3}, type = "int16"} 

It’s totally safe and there’s a similar example in Programming in Lua. Section 3.6 in the 2nd edition (I don’t have the latest edition yet):

polyline = { color=”blue”, thickness=2, npoints=4,
  {x=0, y=0},
  {x=-10, y=0}
  {x=-10, y=1}
  {x=0, y=1}
}

Produces less garbage because there’s no intermediate table to hold the coordinates array.

Petri