Haskellでfizzbuzz

if文を使わないのがカッコいいと思っています。

C1カバレッジ100%なんてよゆーっすよ。

module Main where

import Data.Maybe   --Maybe, Just, Nothing, maybe
import Data.Monoid  --mappend

{-
fizz, buzz::[String]
fizz = cycle $ take 3 $ "Fizz" : repeat ""
buzz = cycle $ take 5 $ "Buzz" : repeat ""
fizzbuzz = zipWith (++) fizz buzz
answer n = zipWith (++) (map show (enumFromTo 0 n)) fizzbuzz
-}

fizz, buzz::[Maybe String]
fizz = cycle $ take 3 $ Just "Fizz" : repeat Nothing
buzz = cycle $ take 5 $ Just "Buzz" : repeat Nothing
fizzbuzz = zipWith mappend fizz buzz
answer::[String]
answer = zipWith (flip maybe id) (map show [0..30]) fizzbuzz

main::IO()
main = print $ answer