FizzBuzz問題 (Haskell、一部修正)

a0002_009631

昨日、HaskellでのFizzBuzz問題の解として、以下のコードを書いたのですが、

fizzbuzz n
  | mod n 15 == 0 = "FizzBuzz"
  | mod n 3 == 0  = "Fizz"
  | mod n 5 == 0  = "Buzz"
  | otherwise     = show n

main = do
  let resultstr = unlines (map fizzbuzz [1..100])
  putStr resultstr 

変数を使う時にはletよりもwhereを使う方がHaskellっぽい、って話があるようなのと、カッコをちょっと端折るために「$」を使用するように、一部修正。

fizzbuzz n
  | mod n 15 == 0 = "FizzBuzz"
  | mod n 3 == 0  = "Fizz"
  | mod n 5 == 0  = "Buzz"
  | otherwise     = show n

main = do
  putStr resultstr 
  where
    resultstr = unlines $ map fizzbuzz [1..100]
スポンサーリンク

フォローする

スポンサーリンク