A list comprehension is a Haskell syntax that is similar to "set comprehensions" or "set-builder notation", ie the notation

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 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]