Résumé
En programmation informatique, la syntaxe de certains langages de programmation permet de définir des listes en compréhension, c'est-à-dire des listes dont le contenu est défini par filtrage du contenu d'une autre liste selon un principe analogue à celui de la définition en compréhension de la théorie des ensembles. Cette construction syntaxique se distingue de la construction la plus courante dans les langages de programmation qui est de définir les listes par énumération de ses éléments. Cette construction syntaxique offre des avantages de lisibilité et de concision et se rapproche de la notation utilisée en mathématiques : En langage de programmation Haskell, la syntaxe est la suivante : S = [ x | x 3 ] La liste [0..] représente la liste des entiers naturels et x^2>3 représente 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 élément de la liste des nombres naturels et x a son carré plus grand que 3. » Le premier langage de programmation à proposer des définitions par compréhension est SETL. La première référence à la définition par compréhension appliquée aux listes est due à Rod Burstall et John Darlington dans la description de leur langage de programmation en 1977. Dans le système de calcul formel AXIOM, une construction du même genre gère les flux (ou streams) qui peuvent être vus comme des listes infinies. Les compréhensions ont été proposées comme une notation de requête de base de données et ont été implantées dans le langage de requête de base de données Kleisli. En langage de programmation Haskell, les compréhensions de liste sont des expressions qui peuvent contenir les fonctions d'ordre supérieur map et filter. Par exemple : s = filter (\x -> x^2 > 3) [0..] ou s = [x | x 3] Dans ce langage, la syntaxe de la compréhension de liste utilise après la barre verticale | une suite de qualifiants. Un qualifiant a deux parties : un générateur qui extrait des éléments d'une liste ; une garde qui filtre les éléments extraits.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.