terça-feira, 6 de maio de 2014

Funções anônimas. Quem sabe o que é?

Neste post vou falar de funções anônimas, a sua usabilidade e mostrar exemplos. Vou colocar um exemplo de python e JavaScript, mas poderia ser em C++, C#, PHP e até Delphi pelo que ouvi falar, o importante é o conceito.

Funções anônimas, também conhecidas com closures, permitem a criação de funções que não tem nome especificado.

Elas são mais uteis com os valores de parâmetros callback, mas pode ter outros usos. Isso para o programador iniciante parece complicado mas após alguma pratica fica fácil.

Talvez surja a pergunta aos novatos: mas se utilizamos as funções "normais" sem problema, qual seria a utilidade das funções anônimas?
Imagine o caso que você necessite utilizar uma função só que com parâmetros diferentes. Neste caso você precisaria, dependendo da linguagem, declarar uma outra função e fazer sua implementação, para utiliza-la uma vez só as vezes. Com as funções anônimas, e caso a linguagem suporte closure ganhamos uma maior simplicidade de código.

Cálculo do número N da sequência de Fibonacci.
- usando funções normais Python

def fibonacci(N):
return N if N < 2 else fibonacci(N-1) + fibonacci(N-2)
print fibonacci(10)


- usando funções anônimas Python

fibonacci = lambda N: N if N<2 else fibonacci(N-1) + fibonacci(N-2)
print fibonacci(10)


- usando funções normais JavaScript

function myFunction() {
alert("Hello world!");
}


- usando funções anônimas JavaScript

var myFunction = function() {
alert("Hello world!");
}


Algumas peculiaridades de Python para JavaScript mas da para ter uma ideia.
Assim que tiver mais tempo, escrevo sobre expressões lambda. De onde originou as funções anônimas.

Nenhum comentário:

Postar um comentário