drkcore

2009/12/29 19:19:08

「Haskell初心者脳」の謎に迫る FizzBuzz

「Lisp脳」の謎に迫る - Schemeプログラマの発想をみて、Haskellだったらどう書くかを考えてみた。

基本はFizzBuzzの無限リストを生成してtakeすればよかろうと。

出来たのがこれ。

fizzbuzz = fizzbuzz' [1..] fbz
    where
      fizzbuzz' (x:xs) (y:ys) | y == ""   = (show x):(fizzbuzz' xs ys)
                              | otherwise = y:(fizzbuzz' xs ys)
      fbz = zipWith (++) (cycle ["","","Fizz"]) (cycle["","","","","Buzz"])

あとは好きなだけtakeする

Comments