Scheme:Generator

Scheme:Generator


ジェネレータとは?

WikiBooksJa:Scheme/継続の種類と利用例

コルーチン・マイクロスレッド・ジェネレータ
ここまでの例で、継続の呼び出しはgoto文の実行と同じようなものだという感覚が分かったと思う。ここではより複雑な例として、コルーチン・マイクロスレッド・ジェネレータを取り上げる。これらは処理の途中で継続を保存して、必要な時に継続を呼び出して再開する仕組みを持っている。
WikipediaJa:ジェネレータ (プログラミング)は「中断可能な関数」のようなものである。ジェネレータの内部でyieldが呼び出されると処理が一旦中断し値が返されるが、その後ジェネレータをもう一度呼び出すことでyieldした位置から処理を再開することができる。

外部イテレータとは、Pythonのイテレータやfor文、JavaのIterator.next()メソッドのように、手続きを呼び出すごとに次々とデータを探索する手続きやオブジェクトである。このようなものをジェネレータを用いて書くことができる。 (書きかけ)

Scheme:generatorとdoとwhile

Scheme:部分継続:イテレータの反転



Tags: generator, ジェネレータ

More ...