布団の中にいたい

Elasticsearchいじったり、Androidアプリ書いたり。最近は数学の勉強が楽しくなってきました。

haskellでfizzbuzz

だいぶ昔に少しだけhaskellで遊んでたけど、すでに文法すら頭から消し飛んでたので最初からやり直してて、復習にちょうどいいかと思いfizzbuzzをサクッと書いてみました。

ソースは以下。Integerを引数にStringで返す関数を作って、mapでリストの値を適用してるだけです。普通だと配列ごと渡してやろうのだろうけど、めんどくさかったのでこんな感じ。

fizzbuzz :: Integer -> String
fizzbuzz n
  | n `mod` 15 == 0 = "fizzbuzz"
  | n `mod` 5 == 0 = "buzz"
  | n `mod` 3 == 0 = "fizz"
fizzbuzz n = show n

main :: IO()
main = do
  print $ map fizzbuzz [1..10]

haskellで数値から文字列へのcastがよくわからなかったけど、普通にshowを使えばよかったっぽい。showってもっとごちゃごちゃしてた気がするけど、今はとりあえずcastってことだけ覚えとく。

http://hackage.haskell.org/package/base-4.0.0.0/docs/Prelude.html#22