Category Archives: Linguagens

CCT Março 2008 – DSL com Rhino

Confirmamos mais um evento de alto nível do CEJUG no CCT de Março. Destaque para a excelente palestra ministrada pelo Dr. Vasco Furtado (blog aqui) sobre o Wikicrimes. A última palestra foi do coordenador Hildeberto que voltou da Bélgica para uns dias no Brasil.

[slideshare 309439 cct-dsl-120571477793465-5]

Leonardo Ayres, Rafael Carneiro, Christiano Milfont, Vasco Furtado e Hildeberto Mendonça. Mais fotos do evento.

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very complicated matter. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take prescription medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may include erectile disfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Currying em Javascript

Uma característica de linguagens funcionais muito usada em Javascript é a técnica de Currying, a grosso modo de explicar, usada para transformar uma função com n argumentos em uma outra função com argumentos simples.

 function pow(i, j) { 
     return i * j;
 }

 function square (k) {
     return pow(k, 2);
 }

 alert(square(6));

Veja nesse exemplo que uma função denominada de pow (que multiplica dois elementos) é usada na função square (que multiplica sempre um elemento por 2) de forma que você tem o uso de primeira pela segunda com uma redução de parâmetros. Essa técnica é usada nas funções de alta ordem como Fold, Map, etc.

Array.prototype.each = function(fn){
	for(var i = 0, len = this.length; i

Exemplo acima usando uma função que aplica outra função para cada elemento de um array.
Essa técnica ficou popular mesmo sendo usada junto a Closure que precisam de funções de callback para processar um resultado de outra função.

Explicando isso em código, teríamos Currying da seguinte forma:

 function atualizar(id) {
     return function(resposta) {
          document.getElementById(id).innerHTML = resposta;
     };
 }

 function processar(msg, fn) {
     fn(msg);
 };

processar('testando currying em ação', atualizar('area'));

Na linha 1, temos a declaração de uma função denominada atualizar que recebe um parâmetro em seu construtor que será o id de um elemento qualquer. A chamada a essa função provoca o retorno de uma outra função declarada internamente na linha 3. Essa função interna recebe também um argumento e a função dela é adicionar esse argumento no conteúdo do elemento passado como parâmetro na função inicial. Criei uma função chamada processar apenas para aplicar uma mensagem a um função, será usada para fazer a mágica do Currying aqui. Veja na linha 15 que usei a função processar para submeter uma frase (primeiro argumento) na função atualizar (segundo argumento), passando para ela o id de um elemento como um DIV.

Observe que esse código é muito comum em frameworks ajax, um exemplo claro disso seria como o DWR trabalha.

 function callback(retorno) {
     alert(retorno);
 }

DWRInterface.metodo(callback);

Aqui aplicamos a função callback na função "metodo" que é um método do objeto DWRInterface controlado pelo framework DWR. DEssa forma quando o DWR processar a requisição ajax, submete o retorno vindo do servidor para a função callback que o recebe como parâmetro.
Vamos investigar outras características de linguagens funcionais nos próximos artigos.

Typically chemist's shop can sale to you with discreet treatments for various soundness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about "viagra manufacturer coupon". Maybe "viagra discount coupons" is a much complicated problem. Matters, like "coupons for viagra", are coupled numerous types of health problems. If you need to take recipe medications, ask your druggist to check your testosterone levels before. Sometimes the treatment options may include erectile disfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a formula is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Material CCT Janeiro 2008

Slides da palestra de ontem pelo CEJUG.

Agradecemos a presença dos membros do CEJUG em uma quarta-feira chuvosa a noite em local distante. Vocês estão de parabens!

Agradecemos a presença do Marcelo Diniz de Campina Grande – PB e do Leonardo Torres (Juazeiro do Norte-CE).

Marcelo Diniz (Campina Grande-PB), Rafael Carneiro (CEJUG Leader), Leonardo Torres (Juazeiro do Norte-CE) e Christiano Milfont.

Mais fotos na página do evento no CEJUG.

[update 25/01/2008]

O material do Silveira já está publicado no blog dele http://silveiraneto.net/.

[/update]

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a much complicated question. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take recipe medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may switch on erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.