C# Orientado a Eventos - Revista .net Magazine 100 - Parte 2

Este artigo introduz o estudo de Expressões Lambda no .Net Framework em comparação ao Cálculo Lambda matemático, demonstrando sua utilidade e facilidade de uso.

Artigo no estilo: Curso

De que se trata o artigo

Dando continuidade ao artigo C# Orientado a Eventos – delegates e events, este artigo introduz o estudo de Expressões Lambda no .Net Framework em comparação ao Cálculo Lambda matemático, demonstrando sua utilidade e facilidade de uso.

Em que situação o tema é útil

A expressão lambda é recomendada para a escrita de métodos de extensão simplificados, normalmente orientados a funções matemáticas ou de operação de coleções.

Sua utilização visa uma codificação fluente, desmembrando algoritmos complexos em algoritmos mais simplificados e interdependentes.

Expressões Lambda

Neste artigo iremos abordar o estudo de expressões lambda em comparação ao cálculo lambda, com o intuito de demonstrarmos desmembramento de processos de um algoritmo, estendendo o estudo de delegates e introduzindo o estudo de coleções na api System.Linq.

Demonstraremos como funcionam internamente algumas estruturas do Microsoft Linq que se utilizam desta facilidade matemática.

A matemática é a base para a solução de qualquer algoritmo computacional, por isso é fundamental o conhecimento de alguns conceitos desta ciência para a elaboração da análise de um sistema sólido.

Um fluxo de trabalho conciso requer o desmembramento de fluxos de forma lógica com o intuito obter um resultado com o mínimo de falhas. Este é o paradigma Divide and Conquer (dividir e conquistar) que consiste em quebrar um processo em sub processos menores até que esses se tornem simples o suficiente para serem solucionados diretamente.

A organização de processos em algoritmos já foi largamente implementada em paradigmas procedurais, posteriormente evoluindo ao paradigma orientado a objetos com o intuito de criar segmentações mais definidas para cada passo.

Mesmo diante destes recursos nos deparamos com algumas tarefas muito repetitivas e recursivas que poderiam ser divididas em algoritmos mais simples, como, por exemplo, a varredura de uma lista de objetos para que seja montada uma lista de novos objetos, o agrupamento de uma coleção de dados ou um somatório baseado em parâmetros pré-definidos.

Atentos para o fato de que um computador funciona com cálculos matemáticos, é natural pensarmos que algumas metodologias aritméticas possam agregar mais agilidade e facilidade na execução de algumas etapas de um algoritmo, dentre estas metodologias destacamos o cálculo lambda (Nota do DevMan 1).

Nota do Devman 1

O Cálculo Lambda foi introduzido pelo matemático Alonzo Church na década de 1930, provendo uma semântica simplificada para o estudo formalizado de propriedades computacionais. Consiste em resolver problemas de forma lógica por intermédio de fenômenos relacionados com ligação e substituição de variáveis.

Imagine um cálculo de juros simples definido pela equação M = V + (V * T/100), onde V é o valor monetário, T é a taxa de juros.

Trazendo a equação para um cálculo lambda teremos a seguinte formulação:

juros(T, V) => V + (V * T/100) ou (T, V) => V + (V * T/100)

Neste primeiro momento deveremos informar os dois parâmetros para que a função tenha seu valor calculado, conforme a Listagem 1.

Listagem 1. Cálculo Lambda para juros simples

1 (T, V) => V + (V * T/100) (5,100) 2 = 100 + (100 * 5/100) 3 = 105

Esta função utiliza dois argumentos (V e T), mas podemos transformá-la de tal modo que ela receba um parâmetro inicialmente e finalmente o parâmetro restante."

[...] continue lendo...

Artigos relacionados