作者: 機械伯爵 | |
日時: 2008/4/8(22:32) |
機械す。 どこかでナナメ読みしたので、違ってるかもしれないけど…… for x in collection: print(x) とゆーPythonの常套句は、xに何度も値を再代入するんで、参照透過性が 保たれんので、 def func(collection): print(collection.pop(0)) return func(collection) みたいな、再帰っぽい書き方を奨励してたような気がする。 が、Pythonのスタックは貧弱なんで、再帰を多用するとすぐにポシャける。 そんなに参照透過性を保持したいのなら、 i = iter(collection) try: while 1: print(next(i)) except StopIteration: pass ってな感じでイテレータを作った方が安全だと思うのだけど、どうだろう? /機械伯爵/