RosettaCodeData/Task/Summarize-primes/Haskell/summarize-primes.hs

19 lines
472 B
Haskell

import Data.List (scanl)
import Data.Numbers.Primes (isPrime, primes)
--------------- PRIME SUMS OF FIRST N PRIMES -------------
indexedPrimeSums :: [(Integer, Integer, Integer)]
indexedPrimeSums =
filter (\(_, _, n) -> isPrime n) $
scanl
(\(i, _, m) p -> (succ i, p, p + m))
(0, 0, 0)
primes
--------------------------- TEST -------------------------
main :: IO ()
main =
mapM_ print $
takeWhile (\(_, p, _) -> 1000 > p) indexedPrimeSums