ブログ

読んで思い出す。忘れるために書く

FizzBuzz を書いた (Haskell)

paiza ラーニングの Haskell 問題集 を進めていて、FizzBuzz 回答まで到達できたので記録

パターンマッチングと mapM_ を活用した関数合成で解くことができた

回答コード

-- 関数定義
isFizzBuzz n =
  (isFizz n) && (isBuzz n)

isFizz n =
  (n `mod` 3) == 0

isBuzz n =
  (n `mod` 5) == 0

fizzBuzz n
  | isFizzBuzz n = "FizzBuzz"
  | isFizz n = "Fizz"
  | isBuzz n = "Buzz"
  | otherwise = show n

-- メイン
main = do
  -- FizzBuzz のパターンマッチングと その結果を `putStrLn` で標準出力に出す
  mapM_ (putStrLn.fizzBuzz) [1..100]

Links