DEV Community

Ortiz de Arcanjo Antonio David
Ortiz de Arcanjo Antonio David

Posted on

Lists Comprehension (Compreensão de Listas)

No desenvolvimento de soluções é indispensável o uso de coleções para organizar os dados. Mas sabemos que o uso de coleções torna-se mais complexo na medida que a solução cresce. Uma das formas para simplificar a manipulação de coleções é usando Lists Comprehension.

As lists comprehension são expressões que permitem criar listas baseadas em listas existentes. As Lists comprehension seguem a notação dos conjuntos (da Matemática) em alternativa ao uso de maps e filters.

Como escrever uma List Comprehension?

Para escrever uma list comprehension existem 2 operações comuns:

  • Selecionar os elementos que verifica uma condição;
  • Calcular a expressão para cada elemento da lista.

Benefícios das Lists Comprehensions

  • Os algoritmos ficam mais curtos e fáceis de entender;
  • Tornam a solução mais declarativa;
  • Reduzem o uso de maps, lambdas ou filters;
  • Tornam o a solução mais precisa.

Embora este conceito tenha as suas origens nas linguagens funcionais, actualmente estão presentes em muitas das linguagens.

Exemplos de linguagens que permitem o uso de lists comprehension

  • Linguagens Orientadas a Objectos: C#, Python, Java e Ruby;
  • Linguagens Multiparadigma: Scala, Kotlin, Rust e Swift;
  • Linguagens Funcionais: Erlang, Elixir, Haskell, F# e Lisp.

Sugestão: É aconselhavel criar uma expressão quando queremos descrever operações simples, para não torná-la ilegível. O melhor é entender como as linguagens funcionais resolvem este problema.

Exemplo: Neste exemplo vamos: Filtrar as idades dos adultos, obter o factorial e quadrado de cada elemento numa lista.
Linguagens: Python e Erlang.

Código em Erlang: list_comp.erl

Image description

Código em Python: list_comp.py

Image description

Executando o código Erlang

Image description

Executando o código Python

Image description

Top comments (0)