ajhc-0.8.0.1: examples/Primes.hs
suCC :: Int -> Int
suCC x = x + 1
isdivs :: Int -> Int -> Bool
isdivs n x = mod x n /= 0
--the_filter :: [Int] -> [Int]
--the_filter (n:ns) = filter (isdivs n) ns
the_filter :: [Int] -> [Int]
the_filter (n:ns) = f ns where
f [] = []
f (x:ns) | isdivs n x = (x:f ns)
f (_:ns) = f ns
primes :: [Int]
primes = map head (iterate the_filter (iterate suCC 2))
--primes = map head (iterate the_filter [2 .. ])
main = do
--[arg] <- getArgs
print $ primes !! 2000 -- (read arg)