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)