Página 1 de 1

Expressões lambda

Enviado: 16 Dez 2013 22:45
por bencz
Olá
Sou programador especialista em .net, mas, também sou apaixonado pelo xBase, já trabalhei em uma empresa com xBase, e, inclusive ainda trabalho, mas, com clipper 5.2, mas enfim, visto que o harbour é uma linguagem extremamente poderosa e com varios recursos para trabalharmos, em questão de sintaxe, semantica e geração de código, poderiamos quem sabe, tratar de desenvolver um recurso, que hoje em dia é maravilhoso, que é a utilização de expressões lambda para realizar querys em arrays, listas, strings, dicionarios, hash e etc...


Vou dar um simples exemplo de uma expressão lambda ( linq )

Código: Selecionar todos

            List<string> minha_lista = new List<string>();
            minha_lista.Add("dasbldsajknksldjanl");
            minha_lista.Add("eakmdçlsa,mdksadsmdlksandsajlda");
            minha_lista.Add("dasndksaqnwnçoeqmlqwmdadod ");
            minha_lista.Add("87 3hg3ryh  uyhuçnhdhfasgbafçpahçfonauifaif");
            minha_lista.Add("h iu dnksnui dsnan oifjsofisamjofisajnfasb hoça");
            minha_lista.Add("sdlkmasadlkjdsaoklasklasjldas");
            minha_lista.Add("Maria");
            minha_lista.Add("Pedro");
            minha_lista.Add("João");
            minha_lista.Add("Eu");
            minha_lista.Add("Você");
            minha_lista.Add("Nós");
            minha_lista.Add("dsabhdsakjsdandsanjdsansdnsdnjlk");

            List<string> minha_nova_lista = ( from mnl in minha_lista
                                              where mnl.StartsWith("d") && mnl.Length > 2
                                              select mnl).ToList();
Como vocês podem ver, estou realizando uma query na lista de strings, fazendo a seleção de apenas alguns itens, onde isso é muito mais simples do que realizar um FOR ou um WHILE ou um FOREACH para realizar os processos que deseja.
http://www.codeproject.com/Articles/507 ... -to-Lambda

Realizando alguns estudos aqui, percebi que em harbour, talvez seja posivel adicionar tal poder e eficiência, mas, infelizmente nao tenho tanto conhecimento na linguagem assim, então, se alguem quiser 'abdusir' a idéia, ta ai, uma idéia muito boa ;)