Llista per comprensió

De Viquipèdia
Dreceres ràpides: navegació, cerca

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.

S=\{x|x \in \mathbb{N}, x^2>3\}

tindria un equivalent en llenguatge Haskell (que permet declarar llistes il·limitades)

S = [ x | x<-[0..], x^2>3 ]

Exemples en diversos llenguatges[modifica | modifica el codi]

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