solve :: [Int] -> [String] solve xs = [fizzbuzz x | x<-xs] where fizzbuzz :: Int -> String fizzbuzz x | (x `mod` 3 + x `mod` 5 == 0) = "FizzBuzz" | (x `mod` 3 == 0) = "Fizz" | (x `mod` 5 == 0) = "Buzz" | otherwise = show x main :: IO () main = do n <- readLn :: IO Int mapM_ putStrLn $ solve [1..n]