A list comprehension is a Haskell syntax that is similar to "set comprehensions" or "set-builder notation", ie the notation
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 interpreter 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]