■
ジェネレータを使って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 IncrementGenerator(min=0,max=0,fn=lambda x:x): n = min while(max==0 or n < max): yield fn(n) n = n + 1 fzbz = IncrementGenerator(min=0,max=100,fn=FizzBuzzCheck) for ii in fzbz: print ii
無限にループするジェネレータが書けるのね。
…もう少し工夫するとmapのように振る舞うジェネレータが書けそうな気がする。