import Control.Monad import Data.Maybe import Data.Monoid fizzBuzz :: (Integral a, Show a) => a -> String fizzBuzz k = fromMaybe (show k) $ 3 ==> "Fizz" <> 5 ==> "Buzz" where x ==> z | k `mod` x == 0 = Just z | otherwise = Nothing main :: IO () main = forM_ [1..100] $ putStr . (++" ") . fizzBuzz