Una llista per comprensió (en l'original anglès list comprehension) és una construcció de programació que permet generar una llista a partir d'una funció definida parcialment, concretada en una expressió, especificant el subdomini de partida declarant-ne els valors compresos mitjançant una seqüència de rangs o generadors i filtres. “comprensió” s'entén aquí en el sentit d'inclusió. Tradueix al llenguatge informàtic la notació de subconjunts tradicional de la matemàtica.
tindria un equivalent en llenguatge Haskell (que permet declarar llistes il·limitades)
S = [ x | x<-[0..], x^2>3 ]
Exemples en diversos llenguatges
Per exemple la llistes següents especifiquen el domini de les x com a subdomini dels sencers, en el rang 0 a 100 que compleixen la clàusula x² > 3.
- Haskell
En llenguatge Haskell la sintaxi de la llista equivalent seria
S = [ 2*x | x<-[0..100], x^2>3 ]
- Erlang
S = [2*X || X <- lists:seq(0,100), X*X > 3].
- Python
S = [2*x for x in range(101) if x**2 > 3]
- Scala
val s = for (x <- List.range(0,101); if x*x > 3) yield 2*x