またも FizzBuzz

先日 HaskellFizzBuzz 問題を解いてみたが、いまいちだったので作り直してみた。

fizzbuzz [] = []
fizzbuzz (x:xs)
  | mod x 15 == 0 = "FizzBuzz\n" ++ fizzbuzz xs
  | mod x 5  == 0 = "Buzz\n" ++ fizzbuzz xs
  | mod x 3  == 0 = "Fizz\n" ++ fizzbuzz xs
  | otherwise     = show x ++ "\n" ++ fizzbuzz xs

main = putStr $ fizzbuzz [1..100]

...ダサいな。

コードを書いていて問題なのはコンパイルエラーが起きてメッセージが表示されるのだが、何を言っているのか意味が分からないところか。今までのエラーの傾向からすると、型のことをまだ理解できていないっぽい。