Skip to content

Instantly share code, notes, and snippets.

@hutch
Last active December 17, 2015 05:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hutch/5556155 to your computer and use it in GitHub Desktop.
Save hutch/5556155 to your computer and use it in GitHub Desktop.
main :: IO ()
main = do
mapM_ fizzbuzz [1..100]
mapM_ fizzbuzzbazz [1..120]
where
fizzbuzz :: Int -> IO ()
fizzbuzz i | i `rem` 3 == 0 && i `rem` 5 == 0 = putStrLn "FizzBuzz"
| i `rem` 5 == 0 = putStrLn "Buzz"
| i `rem` 3 == 0 = putStrLn "Fizz"
| otherwise = print i
fizzbuzzbazz :: Int -> IO ()
fizzbuzzbazz i | i `rem` 3 == 0 && i `rem` 5 == 0 && i `rem` 7 == 0 = putStrLn "FizzBuzzBazz"
| i `rem` 5 == 0 && i `rem` 7 == 0 = putStrLn "BuzzBazz"
| i `rem` 3 == 0 && i `rem` 7 == 0 = putStrLn "FizzBazz"
| i `rem` 3 == 0 && i `rem` 5 == 0 = putStrLn "FizzBuzz"
| i `rem` 7 == 0 = putStrLn "Bazz"
| i `rem` 5 == 0 = putStrLn "Buzz"
| i `rem` 3 == 0 = putStrLn "Fizz"
| otherwise = print i
main :: IO ()
main = do
mapM_ fizzbuzz [1..100]
mapM_ fizzbuzzbazz [1..120]
where
fizzbuzz :: Int -> IO ()
fizzbuzz i
| i `rem` 15 == 0 = putStrLn "FizzBuzz"
| i `rem` 3 == 0 = putStrLn "Fizz"
| i `rem` 5 == 0 = putStrLn "Buzz"
| otherwise = print i
fizzbuzzbazz :: Int -> IO ()
fizzbuzzbazz i
| i `rem` 105 == 0 = putStrLn "FizzBuzzBazz"
| i `rem` 35 == 0 = putStrLn "BuzzBazz"
| i `rem` 21 == 0 = putStrLn "FizzBazz"
| i `rem` 15 == 0 = putStrLn "FizzBuzz"
| i `rem` 3 == 0 = putStrLn "Fizz"
| i `rem` 5 == 0 = putStrLn "Buzz"
| i `rem` 7 == 0 = putStrLn "Bazz"
| otherwise = print i
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment