packages feed

MyPrimes (empty) → 0.1.0.0

raw patch · 6 files changed

+72/−0 lines, 6 filesdep +MyPrimesdep +basedep +containerssetup-changed

Dependencies added: MyPrimes, base, containers, time

Files

+ LICENSE view
@@ -0,0 +1,1 @@+The content exposed can be used for any purposes.
+ MyPrimes.cabal view
@@ -0,0 +1,39 @@+name:                MyPrimes
+version:             0.1.0.0
+synopsis:            Generate all primes
+homepage:            http://afonso.xyz
+license:             MIT
+license-file:        LICENSE
+author:              Afonso Matos
+maintainer:          contact@afonsomatos.com
+category:            Data
+build-type:          Simple
+cabal-version:       >=1.10
+
+Flag Debug
+    Description: Enable debug support
+    Manual: True
+    Default: False
+
+BenchMark bench-foo
+    ghc-options:        -Wall
+    type:               exitcode-stdio-1.0
+    default-language:   Haskell2010
+    build-depends:      base, time
+    main-is:            bench-foo.hs
+    if flag(debug) && os(windows)
+        main-is:        bench-bar.hs
+
+executable PrimesList
+    ghc-options:        -Wall
+    build-depends:      containers, MyPrimes, base >= 4.7 && < 4.8
+    main-is:            Main.hs
+    default-language:   Haskell2010
+    hs-source-dirs:     src
+
+library
+    ghc-options:         -Wall
+    exposed-modules:     Data.List.Primes
+    hs-source-dirs:      src
+    build-depends:       containers, base >= 4.7 && < 4.8
+    default-language:    Haskell2010
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple
+main = defaultMain
+ bench-foo.hs view
@@ -0,0 +1,17 @@+{-# LANGUAGE BangPatterns #-}
+module Main where
+
+import Data.Time.Clock
+
+fib :: Integer -> Integer
+fib 0 = 1
+fib 1 = 1
+fib n = fib (n - 1) + fib (n - 2)
+
+main :: IO ()
+main = do
+
+    start <- getCurrentTime
+    let !r = fib 20
+    end <- getCurrentTime
+    putStrLn $ "fib 20 took " ++ show (diffUTCTime end start)
+ src/Data/List/Primes.hs view
@@ -0,0 +1,7 @@+module Data.List.Primes where
+
+import Data.Map ()
+
+primes :: [Integer]
+primes = sieve [2..]
+    where sieve (p:xs) = p : sieve [ x | x <- xs, x `mod` p > 0 ]
+ src/Main.hs view
@@ -0,0 +1,6 @@+module Main where
+
+import Data.List.Primes (primes)
+
+main :: IO ()
+main = print . take 200 $ primes