lua-users home
lua-l archive

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


While this thread has altered my views on the issue a bit, I'm also starting to wonder if I'm just bored and looking for change.

Another bias I have that I should have mentioned is that I'm using LuaJIT (5.1~2) heavily with FFI so I'm also also seeing this as a future performance benefit. Perhaps it would only help LuaJIT to be a bit more predictable but not PUC Lua so much.

I'd like to create my own language as well with my own ideas. Perhaps I'll learn a thing or two as to why certain desicions are made.

On Sun, Jan 21, 2018 at 5:24 PM, Andrew Starks <andrew@starksfam.org> wrote:
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