再帰とyield
ステートメントを組み合わせる方法はありますか?たとえば、(再帰を使用する)無限数ジェネレータは次のようになります。
def infinity(start):
yield start
# recursion here ...
>>> it = infinity(1)
>>> next(it)
1
>>> next(it)
2
私は試した:
def infinity(start):
yield start
infinity(start + 1)
そして
def infinity(start):
yield start
yield infinity(start + 1)
しかし、それらのどれも私が望むことをしませんでした、最初のものはそれが降伏した後に停止start
し、2番目のものは降伏しstart
、次にジェネレーターそしてそれから停止しました。
注: whileループを使用してこれを実行できることを知っています。
def infinity(start):
while True:
yield start
start += 1
これを再帰的に実行できるかどうかを知りたいだけです。