Introduction
Une liste, comme un ensemble, peut-être définie par la donnée d'une propriété caractéristique de ses éléments, on dit qu'on l'a définie en compréhension. Comme cette construction offre des avantages de lisibilité et de concision, certains langages de programmation proposent donc la possibilité de définir une liste par une propriété caractéristique et l'on appelle cela la compréhension de liste. C'est l'analogue de la définition d'un ensemble par compréhension que l'on note généralement ainsi:
En langage Haskell, la syntaxe de compréhension de liste est :
S = [ x | x<-[0..], x^2>3 ]
La liste [0..] représente la liste des entiers naturels et x^2>3 répresente la propriété caractéristique de la liste. Cela peut être lu comme suit : "S est la liste de tous les x où x est un item de la liste des nombres naturels et x a son carré plus grand que 3."