master amadaluzia/rosetta-collatz / haskell / src / Lib.hs
 1module Lib
 2    ( collatz
 3    , collatzSequence
 4    ) where
 5
 6collatz :: Int -> Int
 7collatz a
 8    | (mod a 2) == 0 = (div a 2)
 9    | otherwise = 3 * a + 1
10
11collatzSequence :: Int -> String
12collatzSequence a = (show a) ++ ": " ++ collatzSequence' a
13    where
14        collatzSequence' :: Int -> String
15        collatzSequence' 1 = "1"
16        collatzSequence' b = (show b) ++ ", " ++ collatzSequence' (collatz b)