Comprensione di lista

Abbozzo
Questa voce sull'argomento programmazione è solo un abbozzo.
Contribuisci a migliorarla secondo le convenzioni di Wikipedia.

Una comprensione di lista (in inglese: list comprehension) è un costrutto sintattico disponibile in alcuni linguaggi di programmazione per creare una lista basandosi su altre liste. Segue la forma della notazione matematica set-builder notation come distinta dall'uso di funzioni map e filter.

Esempi

Python

Python ha una sintassi per le comprensioni di lista.

S = [2*x for x in range(101) if x**2 > 3]

Un'espressione generatrice può essere usata in Python 2.4 e superiori per raggiungere l'equivalente funzionale con S usando un generatore per iterare una lista infinita.

from itertools import count
S = (2*x for x in count() if x**2 > 3)

Haskell

Il linguaggio di programmazione Haskell ha una sintassi per la comprensione di lista molto simile alla notazione matematica per la creazione degli insiemi.

s = [2*x | x <- [1..101], 2*x > 3]

Questa istruzione crea l'insieme di tutti i numeri pari contenuti nell'intervallo [ 4 , 202 ] {\displaystyle [4,202]} , ma naturalmente si possono esprimere insiemi infiniti come l'insieme di tutti i multipli di 13:

s = [13*x | x <- [1..]]

e sfruttando la valutazione lazy di Haskell prenderne in un secondo momento una porzione finita,

take 100 s

Collegamenti esterni

  • List Comprehensions, su docs.python.org.
  • List Comprehensions, su learnyouahaskell.com.
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica