どんどん不思議なことになってきたFizzBuzz

def FizzBuzzCheck(n):
    if (n % 15)==0:
        return "FizzBuzz"
    elif (n % 3)==0:
        return "Fizz"
    elif (n % 5)==0:
        return "Buzz"
    else:
        return n

def generator(start,check,next):
    if check(start):
        yield start
        for ii in generator(next(start),check,next): yield ii


def generatorMap(gen,fn=lambda x:x):
    for item in gen:
        yield fn(item)

fzbz = generatorMap( generator(0, lambda x:x<100, lambda x:x+1), FizzBuzzCheck )

for ii in fzbz:
    print ii