pythonにはリスト用のmapやreduce組み込み関数もあるけれど、generatorを使って平行プログラミング風にGoogleのMapReduce風サーバを書いてみた。サーバと入ってもgeneratorなので、実際の実行はシングルスレッド上で処理されるです。 generatorはsendメソッドを使うことで、erlangのprocess(とかRubyのfiberとか)のようにも使うことができる、のは周知のこと g = spawn(gf) => g = gf(); g.next() g ! m => g.send(m) receive m -> ... => m = yield; ... 自己再帰呼び出し => ループ ついでにgeneratorはg.close()で終了させれます。 コード: MapReduceサーバ def server(docs): mappers = [] fo

