Luaはコルーチンがとても特徴的で、こんなに継続オブジェクトが扱いやすい言語は、他にありません。 http://www.lua.org/manual/5.1/manual.html#2.11 Luaまではムリでも、Pythonでそれに近いことができないか、挑戦してみました。 Python2.5以上じゃないとダメですが、ジェネレータ関数を入力として作成される、コルーチン「もどき」オブジェクトです。 class Coroutine: def __init__(self, func): self._gen = func self._itr = None self.response = None self.alive = True def resume(self, *args): if not self.alive: raise "cannot resume dead coroutine" try
Scheme 入門 16. 継続の例。 2つのタスクを交互に呼ぶ。 数字をプリントするタスク 文字をプリントするタスク var queue = []; function coroutine(thunk) { queue.unshift(thunk); } function start() { (queue.pop())(); } function pause() { var cc = new Continuation(); coroutine(function() {cc(false);}); start(); } coroutine(function() { for (var i = 0; i < 5; i++) { print(i + 1); pause(); }; }); coroutine(function() { for (var i = 0; i < 5; i++) { pri
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く