作者: 機械伯爵
日時: 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

 ってな感じでイテレータを作った方が安全だと思うのだけど、どうだろう?

 /機械伯爵/