4 collatz n | even n = n `div` 2
5 collatz n | otherwise = 3 * n + 1
7 collatzStep :: Int -> Maybe (Int, Int)
8 collatzStep 0 = Nothing
9 collatzStep 1 = Just (1, 0)
10 collatzStep n = Just (n, collatz n)
16 let nums = unfoldr collatzStep n
17 let outStr = intercalate " " $ map show nums