Compreensão de Listas (List Comprehension)

Hoje pela manhã apresentei o trabalho sobre Erlang. Foi algo bem curto, apenas apresentando superficialmente a linguagem e sua história. Como exemplo, usamos o código abaixo, extraído da entrada na Wikipedia:

%% quicksort:qsort(List)
%% Sort a list of items
-module(quicksort).
-export([qsort/1]).

qsort([]) -> [];
qsort([Pivot|Rest]) ->
    qsort([ X || X <- Rest, X < Pivot]) ++ [Pivot] ++ qsort([ Y || Y <- Rest, Y >= Pivot]).

Logo após passar para o próximo slide o professor interrompe e diz: “Pessoal, esse assunto será questão da prova 1”. Na hora o pessoal acordou (hehehe) e pediu para explicar novamente. =)

O que deve cair especificamente é o que chamamos de “List Comprehension” (Compreensão de listas), uma técnica utilizada para o processamento de listas de maneira análoga às regras de construção de conjunto, do tipo que [ X || X <- Rest, X < Pivot] significa algo como “Pegue os elementos X tal que X pertença a Rest e X é menor que Pivot”. O que segue ao “||” são as condições para que um elemento pertença à lista.


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s