haskellでやってみた。

bashよりも恥ずかしい状況に(涙

文字列変換関数showを覚えていなかった。あと改行コードを足すのがあまりにも恥ずかしい。猛省。

a = [1..100]
main = do putStr $ concatMap fizzBuzz a
fizzBuzz :: Int -> String
fizzBuzz c = if c `mod` 15 == 0 then "FizzBuzz\n" else
                 if c `mod` 3 == 0 then "Fizz\n" else
                     if c `mod` 5 == 0 then "Buzz\n" else
                         concat [show c,"\n"]

ガードで書き直してみた

a = [1..100]
main = do putStr $ concatMap fizzBuzz a
fizzBuzz :: Int -> String
fizzBuzz c  
    |c`mod`15==0 = "FizzBuzz\n"
    |c`mod`3==0  = "Fizz\n"
    |c`mod`5==0  = "Buzz\n" 
    |otherwise   = concat [show c,"\n"]