| ------------------------------------------------------------------------------- | |
| -- Table Manipulation | |
| -- 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. | |
| -- @module table | |
| ------------------------------------------------------------------------------- | |
| -- Given an array where all elements are strings or numbers, returns | |
| -- `table[i]..sep..table[i+1]...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. | |
| -- @function [parent=#table] concat | |
| -- @param #table table table to handle. | |
| -- @param #string sep the separator, default value is an empty string. | |
| -- @param #number i start index, default value is 1. | |
| -- @param #number j end index, default value is lenght of the table. | |
| -- @return #string the concatenated table. | |
| ------------------------------------------------------------------------------- | |
| -- 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, so that a call | |
| -- `table.insert(t,x)` inserts `x` at the end of table `t`. | |
| -- @function [parent=#table] insert | |
| -- @param #table table table to modify. | |
| -- @param #number pos index of insertion. | |
| -- @param value value to insert. | |
| ------------------------------------------------------------------------------- | |
| -- 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.) | |
| -- @function [parent=#table] maxn | |
| -- @param #table table table to traverse. | |
| -- @return #number the largest positive numerical index of the given table, or | |
| -- zero if the table has no positive numerical indices. | |
| ------------------------------------------------------------------------------- | |
| -- 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`. | |
| -- @function [parent=#table] remove | |
| -- @param #table table table to modify. | |
| -- @param #number pos index of deletion. (default value is the lenght of the table) | |
| ------------------------------------------------------------------------------- | |
| -- 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). 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. | |
| -- @function [parent=#table] sort | |
| -- @param #table table table to sort. | |
| -- @param comp a function which take to table and returns true when the first is less than the second. | |
| return nil |