Wintus
12/17/2013 - 4:37 PM

http://bugrammer.hateblo.jp/entry/2013/12/15/220418 を読んで、こう書けばモーナド♡って気持ち、表現できたのではとおもってみたりでし

http://bugrammer.hateblo.jp/entry/2013/12/15/220418 を読んで、こう書けばモーナド♡って気持ち、表現できたのではとおもってみたりでし

fizz     x = if x `mod` 3  == 0 then Left "fizz"     else Right x
buzz     x = if x `mod` 5  == 0 then Left "buzz"     else Right x
fizzbuzz x = if x `mod` 15 == 0 then Left "fizzbuzz" else Right x
number   x = Left $ show x
 
doFizzBuzz x = either id id $ fizzbuzz x >>= buzz >>= fizz >>= number
 
main = foldr1 (>>) $ fmap putStrLn (fmap doFizzBuzz [1..])