コルーチン [Lua]
PiL の coroutine の章を読んだ。
今まで親しんできた言語でコルーチンをフィーチャーした言語は殆どなかった(Python の generator は使ったことない)ので、ちゃんと勉強するのは初めてだ。
すごいと思ったのは、例えば "Higher Order Perl" には "From Recursion to Iterators" という章があって、再帰を使ったアルゴリズムをイテレータに置き換える方法についてかなりのページを割いて説明している―それにはまあちょっとした頭の体操を要する―のだが、コルーチンを使うと「アルゴリズムは再帰のままで」結果を yield するだけでイテレータが作れる。これはあっけなくてすごい。
コルーチンの機能は一見言語自体の直接サポートがないと難しそうにも見えるけどウェブを検索してみるとコルーチンのない言語でコルーチンを実現するような工夫をしているのが無いわけでもないらしい。実現のための言語の要件が何ということがあまりよく理解できていない。要調査。
コメント 0