changeset 10:39725b492f1e

Add haskell
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Tue, 01 Oct 2013 21:39:48 -0400
parents
children d5ba6cf70633
files haskell/primes.hs
diffstat 1 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/haskell/primes.hs
@@ -0,0 +1,11 @@
+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)
\ No newline at end of file