Enumerator

面白い記事があった。

Enumeratorの3つのメリットとして、外部イテレータとして使える、Enumerable#with_indexが使える、Enumerable#zipの引数に渡せるというのがあったが、Pythonでは基本は全て外部イテレータだし、enumerate()関数があるし、iterableをzipに渡せるので同じことが既にできている。


外部イテレータとして使うときに、e.rewindというメソッドがあったが、これはPythonには存在しない。欲しい機能だと思った。


あと外部イテレータの利点1割と書いてあったが、ファイル処理などかなり使えると思う。逆に内部イテレータで次の要素の取り出しを自由に制御できないのはロジックを書くときにかなり不便だと思う。例えばファイル処理で、あるキーワードを含む行が来るまで無限に繰り返すみたいな処理は内部イテレータではどうするのだろう?と言うかRubyではどうするのだろう?