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.