12/04/13 17:29:05.85
>>272
何縛りのゲームなのかわからんけど、関数合成演算子でも駄目かね?
import Data.Either
import Prelude hiding ((.))
(.) f g n = case concat $ rights [f n, g n] of
[] -> Left n
s -> Right s
fizzT f s n | f n == 0 = Right s
fizzT _ _ _ | otherwise = Right []
fizz = fizzT (`mod` 3) "Fizz"
buzz = fizzT (`mod` 5) "Buzz"
gizz = fizzT (`mod` 7) "Gizz"
main = print $ fizz.buzz.gizz $ 105