Compreensão de lista
Uma compreensão de lista é uma construção sintática disponível em algumas linguagens de programação para criação de uma lista baseada em listas existentes. Ela segue a forma da notação de definição de conjunto matemática como forma distinta para uso de funções de mapa e filtro.
Considere o seguinte exemplo na notação de definição de conjunto: Isto pode ser lido, " S {\displaystyle S} é o conjunto de todos os números "2 vezes x {\displaystyle x} " onde x {\displaystyle x} é um item no conjunto dos números naturais ( N {\displaystyle \mathbb {N} } ), pelo qual x {\displaystyle x} ao quadrado é maior que 3 {\displaystyle 3} ." As primeiras referências encontradas em linguagens sobre a notação de lista de compreensão foram por Rod Burstall e John Darlingtons em 1977 na NPL, mas já havia construtores similares na SETL.
As subseções a seguir fornecem alguns exemplos de sintaxe específica usada nas linguagens de programação. Apesar do exemplo original denotar uma lista, algumas linguagens podem expressar que, assim em alguns daqueles casos mostramos como retirar um subconjunto de { 0 , 1 , . . . , 100 } {\displaystyle \{0,1,...,100\}} em vez de um subconjunto de N {\displaystyle \mathbb {N} } .
Haskell
Podem ser também escritas com funções de alto-nível como map e filter. No mesmo acima, a notação S pode ser escrita como:
Python
A linguagem de programação Python possui uma sintaxe correspondente para expressar compreensões de lista. O equivalente próximo em Python para o exemplo acima está a seguir: Compreensões de lista foram introduzidos na versão 2.0 do Python. O generator foi introduzido a partir do Python 2.4. Então a notação S usando geradores para iterar listas infinitas pode ser:


