table - table manipulation functions (standard library)
This library provides generic functions for table manipulation. It
provides all its functions inside the table table
.
Most functions in the table library assume that the table represents an array or a list. For these functions, when we talk about the ``length'' of a table we mean the result of the length operator.
table.concat
table.concat (table [, sep [, i [, j]]])
Returns table[i]..sep..table[i+1] E...sep..table[j]
. The default
value for sep
is the empty string, the default for i
is 1, and
the default for j
is the length of the table. If i
is greater
than j
, returns the empty string.
table.insert
table.insert (table, [pos,] value)
Inserts element value
at position pos
in table
, shifting up
other elements to open space, if necessary. The default value for
pos
is n+1
, where n
is the length of the table (see sect
2.5.5), so that a call table.insert(t,x)
inserts x
at the end of
table t
.
table.maxn
table.maxn (table)
Returns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices. (To do its job this function does a linear traversal of the whole table.)
table.remove
table.remove (table [, pos])
Removes from table
the element at position
pos
, shifting down other elements to close the space, if
necessary. Returns the value of the removed element. The default
value for pos
is n
, where n
is
the length of the table, so that a call table.remove(t)
removes the last element of table t
.
table.sort
table.sort (table [, comp])
Sorts table elements in a given order, in-place, from table[1]
to table[n]
, where n
is the length of the table. If comp
is
given, then it must be a function that receives two table elements,
and returns true when the first is less than the second (so that not
comp(a[i+1],a[i])
will be true after the sort). If comp
is not
given, then the standard Lua operator <
is used instead.
The sort algorithm is not stable; that is, elements considered equal by the given order may have their relative positions changed by the sort.
This is Lua version 5.1.1.
Lua is developed at Lua.org, a laboratory of the Department of Computer Science of PUC-Rio (the Pontifical Catholic University of Rio de Janeiro in Brazil). For more information about the authors, see http://www.lua.org/authors.html .
Lua is licensed under the terms of the MIT license reproduced below. This means that Lua is free software and can be used for both academic and commercial purposes at absolutely no cost.
For details and rationale, see http://www.lua.org/license.html .
~~~~~
Copyright (C) 1994-2006 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ``Software''), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
~~~~~