a-kuma3

JavaScript

返信先のろまんば

>外部イテレータはあんまり気に入ってないけど、偉い人たちは好きみたい
それぞれの素性によるのかも。

JDBC 辺りから入った人は、「カーソル」を隠蔽したのが ResultSet のイテレータで、それを一般的なコンテナクラスに拡張したという理解がしやすいのが内部イテレータ。

c++ 界隈の人は、ポインタの汎用化が外部イテレータ。
「次」という状態はコンテナじゃなくて、コンテナを利用する側の状態だろうと。

ResultSet のような寿命が短いコンテナだとあまり気になりませんが、Array.find のようなのを内部イテレータで実装すると、寿命が長いコンテナで使った場合に、見つけた後にも「次」の状態を残してしまう。
外部イテレータだと、イテレータの寿命が短ければ良いだけなので、その辺りの気持ち悪さがない。

c++ の STL の iterator の実装はどうだったかなあ。
コンテナとイテレータの実装が直交してたような(記憶違いかも


CPS は難しいっす。
あれが分からないと関数型には嵌まらないんだろうなあと、挫折組 (´・ω・`)

書き込むには、ログインまたはユーザー登録を行ってください。 初めての方へ

規約違反を通報

▼はてなハイクの今月のスポンサー
a-kuma3 id:a-kuma3
書いた日数: 1,815はてなハイク市民 (プラチナ)

表示内容を選択