view haskell/primes.hs @ 14:4282cc25e35c

Add C code
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Sun, 17 Aug 2014 11:21:46 -0400
parents 39725b492f1e
children
line wrap: on
line source

isPrime :: Integer -> Bool
isPrime n = all (\p -> n `mod` p /= 0) (takeWhile (\p -> p^2 <= n) primes)

primes :: [Integer]
primes = 2 : filter isPrime [3,5..]

hailstone :: Integer -> [Integer]
hailstone 1 = [1]
hailstone n = if n `mod` 2 == 0
              then n:hailstone (n `div` 2)
              else n:hailstone ((3*n+1) `div` 2)