Functional
Métodos utilizados para programação funcional.
Atalhos
Métodos
Map
Cria uma nova tabela preenchida com os resultados da chamada de uma função fornecida em cada elemento da tabela de chamada.
-- @param table Tabela que será usada na função.
-- @param callbackFn Uma função a ser executada para cada elemento na tabela.
-- @return table Uma nova tabela com os elementos mapeados
table.map(table, callbackFn)-- example usage:
local t = { 10, 20, 30}
local result = table.filter(t, function(x) return x * 2 end)
-- {20, 40, 60}Filter
Cria uma cópia de uma parte de uma determinada matriz, filtrada apenas para os elementos da matriz fornecida que passam no teste implementado pela função fornecida.
-- @param table Tabela que será usada na função.
-- @param callbackFn Uma função a ser executada para cada elemento do array. Ela deve retornar um valor verdadeiro para manter o elemento no array resultante e um valor falso caso contrário.
-- @return table Uma nova tabela com os elementos mapeados
table.filter(table, callbackFn)-- example usage:
local t = { 90, 19, 16, 14, 1, 2, 3, 4, 5, 6, 7, 8 }
local result = table.filter(t, function(x) return x > 5 end)
-- {90, 19, 16, 14, 6, 7, 8}Reduce
O método reduce() executa uma função de retorno de chamada "redutor" fornecida pelo usuário em cada elemento do array, em ordem, passando o valor de retorno do cálculo no elemento anterior. O resultado final da execução do redutor em todos os elementos do array é um único valor.
table.reduce(table, callbackFn(accumulator, value), initialValue)- table Tabela que será usada na função.
- callbackFn Uma função a ser executada para cada elemento de uma tabela. Seu valor de retorno se torna o valor do parâmetro accumulator na próxima invocação de callbackFn. Para a última invocação, o valor de retorno se torna o valor de retorno de reduce(). A função é chamada com os seguintes argumentos:
- accumulator O valor resultante da chamada anterior para callbackFn. Na primeira chamada, seu valor é initialValue se o último for especificado; caso contrário, seu valor é table[1].
- value O valor do elemento atual. Na primeira chamada, seu valor é table[1] se initialValue for especificado; caso contrário, seu valor é table[2].
- initialValue Um valor para o qual o acumulador é inicializado na primeira vez que o retorno de chamada é chamado. Se initialValue for especificado, callbackFn inicia a execução com o primeiro valor no array como currentValue. Se initialValue não for especificado, o acumulador é inicializado com o primeiro valor da tabela e callbackFn inicia a execução com o segundo valor na tabela como currentValue.
Valor de retorno
O valor resultante da execução da função de retorno de chamada "redutor" até a conclusão em todo o array.
OBSERVAÇÃO: Na linguagem de programação Lua, o indice de posição de um elemento em uma tabela (Array) começa em 1.
-- example usage:
local t = { 2, 3, 4, 5 }
local result = table.reduce(t, function(accum, value) return accum * value end, 2)
-- 240Windows
Cria janelas continuas de tamanho size de uma tabela.
-- @param table Tabela que será usada na função.
-- @param size Tamanho da janela
-- @return table Uma nova tabela com todas as janelas
table.windows(table, size)-- example usage:
local t = { 1, 2, 3, 4}
local result = table.windows(t, 3)
--[[
result:
{
{1, 2, 3},
{2, 3, 4}
}
]]--