ForkinRio Erlang funcional em todos os sentidos

Na terça-feria dia 01/06/2010, começou mais um ForkinRio, depois do Fork de Python e do Fork de Rails, o assunto da vez na pauta de estudo é Erlang.

A idéia nasceu com o Alessandro Martins e o Vanderson “Argentino” Mota, e logo em seguida surgiram mais pessoas interessadas na idéia de estudar uma liguagem funcional.
O pessoal notou que era uma boa oportunidade e propôs mais um Fork dessa vez de erlang.

Como foi o primeiro encontro?

Não houve pré definição de nada, apenas marcamos um dia e horário, e fomo tocar o barco.

Em um primeiro momento o Alessandro fez uma introdução sobre a liguangem que pode ser resumida em:

1. Foi criada na Ericson.

2. O foco do erlang é na concorrência, ser distribuida e tolerante a falhas.

3. É uma liguagem funcional.

4. O CouchDB uma das ferramentas mais faladas do momento, tem seu core feito em Erlang.

Em seguida partimos para o código em si para conhecer como é essa tal de erlang.
Logo no início da códificação descobrimos algumas coisas interessantes, erlang tal qual java, é compilada e o arquivo a ser salvo deve ter a definição do nome do módulo (namespace) igual ao nome do arquivo.
Como no caso abaixo que o arquivo se chama factorial.erl.


-module(factorial).
-export([fac/1]).

fac(0) -> 1;
fac(X) -> X * fac(X-1).

Outro dado que pode ser conferido é o fato de você ter que esportar suas funções e sua quantidade de parâmetros usando:


-export([nome_funcao/qtd_parametro])

Mais um fato interessante, é em relação as variáveis, que não têm seu valor variável, elas são variáveis de associação única (single assignment variable), ou seja o primeiro valor que for atribuido a ela, será assumido e não poderá ou aceitará qualquer outro valor. Outro detalhe importante é que as variáveis devem ser definidas com a primeira letra maiúscula.

Teste você mesmo em seu console:


1> K = 3.
3
2> K = 5.
**exception error: no match of right hand side value 5

A brincadeira foi basicamente esta. Fizemos algumas funções simples de dobro, metade, PA e alguns códigos na base da tentativa e erro somente por curiosidade.

Quem pensou funcional no primeiro encontro ou não foi: ;p

Anna Cruz
Alessandro Martins
Arley Lobato
Carlos Flores
Claudio Berrondo
Israel Teixeira (atrasadão)
Rodrigo Pinto
Vinícius Sales

Para saber mais informações sobre erlang, você pode conferir no próprio site, e também temos algumas referências já em português de quem já andou estudando erlang, confira nos blogs, do Code Zone, do
Caio Ariede e também em algumas anotações do Nando Vieria que ele postou no github.

No próximo encontro no dia 08/06/2010, falaremos sobre primitivas, então se pretende ir ao próximo é legal dar uma olhada para não ficar perdido ;p

Abraços,

Rodrigo Pinto;

Anúncios

Uma resposta para ForkinRio Erlang funcional em todos os sentidos

  1. Anna Cruz disse:

    Dizer que o encontro foi ótimo, deu pra abrir a mente sobre o erlang, ver outro paradigma e pensar em algoritmos de maneira beeem diferente.

%d blogueiros gostam disto: