Cogito Ergo Sum.

我思う故に我あり

8日目のFizzBuzz

・8日目のFizzBuzz

main = mapM_ putStrLn (take 100 fizzBuzz)

fizzBuzz = map fizzBuzzString [1..]
fizzBuzzString x
    | x `mod` 15 == 0 = "FizzBuzz"
    | x `mod`  5 == 0 = "Buzz"
    | x `mod`  3 == 0 = "Fizz"
    | otherwise       = show x

 「HaskellらしいFizzBuzzってどんなだろう?」と考えていて、「『無限に続く文字列のリストから最初の100個を取り出す』なんてどう?」と思い付いたので…。