Socket 0 #1 Posted June 12, 2010 Bom, eu to aprendendo Python, ai vi umas funções que eu gostei então resolvi fazê-las em Lua: range e filter. Antes que os "Pytheiros" forem usar a função range no for, eu digo: não funcionará, pois eu refiz a função apenas, não modifiquei o for. Pra quem não conhece as funções: range([i,] j[, c]): Ela refaz uma das estruturas do for em lua: for i = i, j, c do O range em Python começa em zero, pois os index começam em 0: print range(10) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Como em Lua os index começam em 1 lógico que a minha função também vai começar em 1. filter(function, sequence): function é uma função que recebe um elemento de sequence - que é uma tabela - como argumento. Se function retornar true, este elemento é adcionado em uma tabela que é o valor retornado da função: function f(x) return x % 2 == 0 end print(unpack(filter(f,range(10)))) 2, 4, 6, 8, 10 Antes que me perguntei porque coloquei range 10 ali sendo que a função pede uma tabela. A função range retorna uma tabela o\. Isso tampém poderia ser indicado assim: function f(x) return x % 2 == 0 end print(unpack(filter(f,{1,2,3,4,5,6,7,8,9,10}))) Agora as funções: function range(start, stop, inc) start, stop, inc = start and stop and start or 1, start and stop and stop or start, inc or 1 local result = {} for i = start, stop, inc do table.insert(result, i) end return result end function filter(comp, sequence) local result = {} for i, v in ipairs(sequence) do if comp(v) then table.insert(result, v) end end return result end Bom, eu só as fiz pois eu gostei delas. Share this post Link to post Share on other sites
Roku 0 #2 Posted June 12, 2010 legal hihihi =) eu nm curto muito phyton, só fiz jogo da velha lá aksoaskopaks interessante essa ideia de recriar funções, vou tentar tambem Share this post Link to post Share on other sites
Elwyn 106 #3 Posted June 12, 2010 Socket sua bix*, sempre fazendo coisas anormais para um garoto gênio de 11 anos. '-' Share this post Link to post Share on other sites