lua-users home
lua-l archive

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

On 29/06/2011 17.27, James Graves wrote:
I would re-write that section as follows:

Unless the __len metamethod is set, the length N is defined for a
table which contains consecutive, positive integer keys from 1 to N
and does not contain any positive integer keys outside the range 1 to
N.  Such a table is said to contain a 'proper sequence'.

The following types of keys do not affect the length of the table and
whether or not it contains a proper sequence:

0 (zero)
negative integer (-1, -2, -55, etc.)
non-integer (-1.3, 3.14159265, etc.)

Really? I don't know the internals of Lua, but I thought positive numbers, even non-integer ones, could make the table a non-sequence.

From the current definition it seems so, anyway. I.e.: a table is a sequence if its positive numeric keys (non necessarily the integer ones) *are* 1,2...,n (not *contains*).

I find the current definition much clearer IMHO (save for the glitches I mentioned in the other post)

other non-numeric (strings, tables, functions, etc.)

James Graves

-- Lorenzo