A tipo de dado table possui funções para facilitar o uso desse tipo de dado. Nesta parte, 
                vamos aprender algumas das principais funções.
            
            
            
                Tab. 1: Funções mais comuns
                
                    
                        | Função | 
                        Descrição | 
                    
                
                
                    
                        | insert | 
                        adicionar elemento | 
                    
                    
                        | remove | 
                        remover elemento | 
                    
                    
                        | move | 
                        mover/copiar elemento | 
                    
                    
                        | pack | 
                        empacota valores em uma nova table | 
                    
                    
                        | Visitar | 
                        desempacota os valores em uma table  | 
                    
                    
                        | concat | 
                        concatena uma table | 
                    
                    
                        | sort | 
                        Ordena os elementos de uma table | 
                    
                
            
            
            
                Anteriormente aprendemos a inicializar, acessar e alterar o conteúdo de um elemento contido 
                em uma table. Para adicionarmos um novo elemento, precisamos utilizar a função insert.
            
            Sintaxe
            
table.insert(table,[<pos>], value)
            Onde
            
table : tabela onde desejamos inserir um novo elemento
<pos>: posição do novo elemento. Se não informado, o novo elemento será adicionado no fim.
value: valor para inserir
            Exemplo 7
            
tabela = {1,"string",1.99}
table.insert(tabela,999)
print("Novo valor:",tabela[4])
            Saída
            
Novo valor:	999
            
            
                Para a remoção de um elemento em uma determinada posição em uma table, utilizamos a função 
                remove.
            
            Sintaxe
            
table.remove(list[,<pos>])
            Onde
            
,list: table de onde queremos remover um elemento
<pos>: Posição do elemento que desejamos remover. Se não informado, o último elemento será resolvido.
            Retorno
            
-
            Exemplo 8
            
tab1 = {1,3,2,4}
print("Antes:",#tab1)
table.remove(tab1)
print("Depois:",#tab1)
            Saída
            
Antes:	4
Depois:	3
            
            
                Com a função move podemos copiar elementos de uma table para uma table de destino.
                Os índices inicial, índice final e um índice base para a transferência dos valores são 
                passaos como argumento.
            
            Sintaxe
            
table.move(table1, f, e, t, <table2>)
            Onde
            
table1: table origem de os dados
f: índice inicial para cópia dos valores de a1
e: índice final para cópia dos valores de a1
t: índice base t2 para de destino da cópia.
<table2>: table destino para copia de dados
            Retorno
            
-
            Exemplo 9
            
tab1 = {1,3,2,4}
tab2 = {0,0,0,0} --iniciar zerada
--transfere elementos de 
--tab1[1],tab1[2],tab1[3] -> tab2[1],tab2[2],tab2[3]
table.move(tab1,1,3,1,tab2)
for i=1,#tab2,1 do
   print(tab2[i])
end
            Saída
            
1
3
2
0
            
            
                Com a função pack, podemos criar uma nova tabela baseado em uma lista de valores 
                passados como argumento. 
            
            Sintaxe
            
table.pack(...)
            Onde
            
…: Lista variável ou valores para preenchermos a nova tabela.
            Retorno
            
nova table contendo elementos de ...
            Exemplo 9
            
local tab1 = table.pack(1,2,3)
for i=1,#tab1,1 do
   print(tab1[i])
end
            Saída
            
1
2
3
            
            
                Com a função unpack podemos recuperar os dados de uma table baseados em um índice 
                inicial e final que são passados como argumento. Os dados recuperados são associados 
                a variáveis.
            
            Sintaxe
            
<lista_variaveis> = table.unpack(table1 [, i [, j]])
            Onde
            
table1: table com elementos que desejamos recuperar
i: índice inicial
j: índice final
            
                Se os índices não forem informados, automaticamente os valores contidos na table serão 
                associados de acordo com o número de variáveis informadas.
            
            Retorno
            
elemento(s) de table1 entre i e j
            Exemplo 10
            
local tab1 = {1,2,3}
local a,b,c = table.unpack(tab1,1,3) -- ou table.unpack(tab1)
print(a)
print(b)
print(c)
            Saída
            
1
2
3
            
            
                Quando trabalhamos com table contendo elementos do tipo de dado string, podemos utilizar 
                a função concat para retornar uma string contendo os elementos concanetados de tables. 
                Um separador pode ser utilizado como argumento da função.
            
            Sintaxe
            
table.concat(table1 [, <sep> [, i [, j]]])
            Onde
            
table1: table que desejamos concatenar os elementos
<sep>: separador
i: índice inicial
j: índice final
            
                Se i e j não forem especificados, todos os elementos da table serão concatenados. 
                Caso contrário, apenas os elementos compreendidos entre os elementos serão concatenados.           
            
            Retorno
            
string contendo elementos de i a j de table1 concatenados
            Exemplo 11
            
tab1 = {"str1","str2","str3","str4"}
local retorno = table.concat(tab1,':')
print(retorno)
            Saída
            
str1:str2:str3:str4
            
            
                Para a ordenação dos elementos em uma table, utilizamos a função sort. Com essa função 
                os elementos de uma table são ordenados de forma crescente de acordo com o tipo de dado 
                utilizado. 
            
            Sintaxe
            
tablee.sort(table1 [, <comp>])
            Onde
            
table: table que desejamos ordenar
<comp>: função comparadora aplica a cada elemento da table. Opcional
            Retorno
            
-
            Exemplo 12
            
tabela = {1,3,2,4}
table.sort(tabela) --sort
for i=1,#tabela,1 do
   print(i,tabela[i]) --indice / elemento
end
            Saída
            
1	1
2	2
3	3
4	4
            
                Para tables com elementos heterogêneos não é aconselhável utilizar a função sort, pois ocorrerá 
                erro na conversão dos tipos de dado impossibilitando uma ordenação correta.