Biblioteca Luno

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Biblioteca Luno

Eric Chiesse
Caros, desenvolvi uma biblioteca de uso geral para Lua que tenho usado
em alguns projetos pessoais e agora estou disponibilizando para a
comunidade.

A biblioteca se chama Luno (Lua em esperanto). Ela contem funções
extras para manipular strings (trim, split, join, charAt, ...), io
(getTextFromFile, ...), tabelas (imprimir tabelas, concatenar, ...) e
funções de uso geral como cópia (deep copy)  e impressão (deep print)
de variáveis.

Além disso, há uma biblioteca de suporte a programação funcional
(luno.functional) que implementa as principais funções do paradigma
funcional como map, filter e reduce. Também há suporte para composição
de funções e aplicação parcial de parâmetros.
É possivel por exemplo fazer:

require "luno.functional"
function soma(a,b) return a+b end
soma2 = F.partial(soma, 2)
list = {1,2,3,4}
res = F.map(soma2, list) -- res == {3,4,5,6}

E também há um pequeno framework (bem pequeno) para programação
orientada a objetos (luno.oop) que permite fazer coisas simples como:
require "luno.oop"
Class"A" -- declarar uma classe
function A:init(a,b) -- definir um construtor
    self.a = a
    self.b = b
end

a = A(1,2) -- instanciar um objeto.

Herança também é prevista mudando um pouco a sintaxe.

A documentação de usuário está pendente. Peço desculpas por isso.

O projeto está disponível em: http://code.google.com/p/luno/
A maneira recomendada de instalar é via luarocks:
http://luarocks.org/repositories/rocks/luno-20121129-3.src.rock
Tentem: luarocks install luno.
Se não funcionar (provavelmente por causa de algum firewall) baixem o
rock acima e instalem ele localmente: luarocks install
luno-20121129-3.src.rock

Embora as versões dos pacotes do googlecode e luarocks sejam
diferentes, o código lua em si é exatamente igual.

Espero que seja útil.

Saudações.

---
Eric Chiesse

--
Lua BR - http://groups.google.com/group/lua-br