List comprehension
|
A list comprehension is a Haskell syntax that is similar to "set comprehensions" or "set-builder notation", ie the notation
- <math>S=\{x|x \in \mathbb{N}, x^2>3\}<math>
In Haskell list comprehensions this would be written as
S = [ x | x<-[0..], x^2>3]
where [0..]
represents N, and x^2>3
represents the conditional. It is clear that the two notations are almost identical.
The Haskell compiler actually converts instances of list comprehensions to expressions involving the higher-order functions map
and filter
.
For example S above can be written as
S = filter (\x -> x^2 > 3) [0..]
The Python programming language has a near-equivalent mechanism for expressing list comprehensions. Corresponding example would be:
L = range(100) # this produces a list of integers from 0 to 99 S = [x for x in L if x**2 > 3]