3

O que é lambda ?

#C#
Moacir Alves
Moacir Alves

ela é uma função que não possui nome, assim podemos passar uma função com argumentos em uma chamada à 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.


Image for post

figura 1.1 Sem lambda


Image for post

figura 1.2 Com lambda


Na linha 16 da figura 1.2, podemos observar que no lugar de elaborar uma nova função, utilizamos a sintaxe (x,y) => x / y, que gera uma função anônima referente ao delegate. Então, não temos a necessidade de criarmos várias funções, deixando assim o código mais limpo e legível.

Normalmente, o lambda é definido em apenas uma única linha, e serve para fornecermos abstração para problemas complexos.

No segundo exemplo, utilizaremos uma coleção de strings, no qual é possível verificar a existência de uma palavra específica na coleção;


Image for post

figura 2.1 Sem lambda


Image for post

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 especial coleções;

⦁ 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. Dependendo 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 de compreensão.

2
86

Comentários (2)

None

Brasil