
On 29/06/2011 17.27, James Graves wrote:
I would rewrite 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.) noninteger (1.3, 3.14159265, etc.)
Really? I don't know the internals of Lua, but I thought positive numbers, even noninteger ones, could make the table a nonsequence.
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 nonnumeric (strings, tables, functions, etc.) James Graves
cheers  Lorenzo