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 +1/−0
- MyPrimes.cabal +39/−0
- Setup.hs +2/−0
- bench-foo.hs +17/−0
- src/Data/List/Primes.hs +7/−0
- src/Main.hs +6/−0
+ 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