Vés al contingut

Llista per comprensió

De Viki.cat

Comprensió s'entén aquí en el sentit d'inclusió.

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.

Tradueix al llenguatge informàtic la notació de subconjunts tradicional de la matemàtica.

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

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 seguents 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