[1,2,3] [1..10] map (+1) [0,2..] [x | x <- [1..20], x `mod` 3 /= 0] let f list = [x | x <- list, x `mod` 3 /= 0] in f [1..20] let sieve (p:xs) = p : sieve [x | x <- xs, x `mod` p /= 0] in sieve [2..] let sieve (p:xs) = p : sieve [x | x <- xs, x `mod` p /= 0] in sieve [2..] !! 10 let sieve (p:xs) = p : sieve [x | x <- xs, x `mod` p /= 0] in sieve [2..] !! 1000