givemejob = take 100 $ map (\(a, b) -> a (show $ b)) (zip (tripplezip fizzbuzz buzz fizz) [1..]) where tripplezip a b = zipWith (.) (zipWith (.) a b) fizzbuzz = lold 14 "fizzbuzz" buzz = lold 4 "buzz" fizz = lold 2 "fizz" lold x str = cycle ((take x $ repeat id) ++ [\_ -> str]) main = mapM_ putStrLn givemejob