O que é lambda?
A expressão lambda refere-se a uma função anônima. Isso significa que ela é uma função que não possui nome, assim podemos passar uma função com argumentos em uma chamada para outra função. Isso parece confuso, mas com os exemplos apresentados aqui será mais fácil de compreender.
Nas figuras abaixo apresentamos funções utilizando a linguagem C#.
Neste primeiro exemplo vamos fazer as operações básicas da matemática.
figura 1.1 Sem lambda
figura 1.2 Com lambda
Na linha 16 da figura 1.2, podemos observar que em vez de elaborar uma nova função, utilizamos a sintaxe (x,y) => x / y, que gera uma função anônima referente ao delegate. Portanto, não temos a necessidade de criarmos diversas funções, deixando assim o código mais limpo e legível.
Normalmente, o lambda é definido em apenas uma única linha e serve para fornecer abstração para problemas complexos.
No segundo exemplo, utilizaremos uma coleção de strings, mas não é possível verificar a existência de uma palavra específica na coleção;
figura 2.1 Sem lambda
figura 2.2 Com lambda
Na figura 2.2, podemos observar que na linha 19 não houve a necessidade de criar um loop, pois a propriedade Any verifica a existência de elementos na coleção, enquanto o lambda verifica a existência da palavra.
Esta função contribui muito para o processo. No entanto, assim como qualquer outra ferramenta apresenta suas vantagens e desvantagens, o uso do lambda também apresenta, conforme listado a seguir:
Vantagens
⦁ Código mais simples e legível;
⦁ Simplifica operações em dados em coleções especiais;
⦁ Sintaxe de fácil memorização.
Desvantagens
⦁ Funções anônimas podem gerar problemas na hora de depurar o código.
Se olharmos os exemplos acima veremos que o lambda não mostra as operações na coleção para que sejam operadas daquela forma. resolvido do número de argumentos, pode deixar o código mais complexo.
⦁ Se colocarmos muitos argumentos podemos ter uma grande desvantagem.
O código acaba ficando maior e de difícil compreensão.