Hatena::ブログ(Diary)

みずぴー日記 Twitter

2010-03-29(月)

HaskellでFizzBuzz

| HaskellでFizzBuzzを含むブックマーク

30分プログラム、その748。HaskellFizzBuzz

当初の予定ではSchemeで便利なスクリプトを書く予定でしたが、諸事情により中止となりました。(手元のマシンに処理系インストールされてなかった。)

というわけで、たまたま入っていたHaskellFizzBuzzを書きました。FizzBuzzを書いたのは他にネタが思いつかなかったからです。

使い方

*Main> main
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
Fizz Buzz

ソースコード

fizz = cycle ["","","Fizz"]
buzz = cycle ["","","","","Buzz"]
digits = map show [1..]

fizzbuzz = zipWith3 f fizz buzz digits
    where f "" "" n = n
          f x  "" _ = x
          f "" y  _ = y
          f x  y  _ = x ++ " " ++ y

main = mapM_ putStrLn fizzbuzz

参考

トラックバック - http://d.hatena.ne.jp/mzp/20100329