ああ、見つかった見つかった。
プログラミング日記
http://d.hatena.ne.jp/morchin/searchdiary?word=*%5BPython%5D
<再代入を含む>
>>> for i in range(5):
... print i, i*2
...
0 0
1 2
2 4
3 6
4 8
<再代入を含まない>
>>> def foo(a, b):
... print a, a*2
... if a==b: # 再帰の終了条件
... return None
... else:
... foo(a+1, b)
...
>>> foo(0, 4)
0 0
1 2
2 4
3 6
4 8
ここまでがオリジナル。
これ、printが関数でないと、書き難いな(今Macで書いてるので、
Py3kが使えない……)
>>> def px(a):print a, a*2
...
>>> k = iter(range(5))
>>> try:
... while 1:
... px(k.next())
... except StopIteration:
... pass
...
0 0
1 2
2 4
3 6
4 8
>>>
まぁ、イテレータが「内部が変わる」となれば、意味は
無いのだけど……
/機械伯爵/