LijstcomprehensieIn programmeertalen is lijstcomprehensie een syntactische constructie om een lijst te noteren. Het is gebaseerd op de wiskundige notatie voor verzamelingen. Een lijstcomprehensie is syntactische suiker aangezien hetzelfde ook op een andere manier kan worden geprogrammeerd, zoals met de hogere-ordefuncties map en filter. Enkele programmeertalen waarin men lijstcomprehensie kan gebruiken zijn Python en Haskell. OverzichtHet is in de wiskunde mogelijk een verzameling als volgt te noteren: Dit kan worden gelezen als: ' is de verzameling van alle producten '2 maal ', waarvoor geldt dat een element is van de verzameling natuurlijke getallen en dat in het kwadraat groter is dan 10'. Deze notatie bevat de volgende onderdelen:
VoorbeeldIn de functionele programmeertaal Haskell kan het bovenstaande geschreven worden als:
Hierin staat De bovenstaande lijstcomprehensie kan ook als volgt worden genoteerd:
Het is ook mogelijk meer generatoren en meer predicaten te gebruiken, zoals:
Syntactische suikerLijstcomprehensie is een vorm van syntactische suiker aangezien de code ervoor ook in bestaande taalconstructies kan worden uitgedrukt. Voor de programmeertaal Haskell beschrijft het Haskell 98 Report[1] een systematische manier om lijstcomprehensies om te schrijven naar bestaande taalconstructies, zoals Zo wordt let ok x = if x `rem` 2 == 0 then [x] else [] ok _ = [] in concatMap ok [0..] Hierin is Voetnoten
|