タグ

ブックマーク / mayah.jp (1)

  • call/cc 入門 (Coroutine with call/cc) — MAYAH.JP

    call/cc を使って簡単な Coroutine を作ります。call/cc 入門だと思ってもらえれば幸いです。 coroutine とは ここでは coroutine を「実行の途中でリターンでき、さらにそこ(実行の途中)から再開することが出来る何か」の意味で使用します。適当な疑似言語で書くと次の通り。関数の途中でのリターンを suspend(), 途中からの再開を resume() で表すことにします。 void f(co) { // co は coroutine object の意味 int i = 0; while (true) { printf("=> %d\n", ++i); co.suspend(); } } co = coroutine.create(f); co.start(); // f(co) を呼び出す => 1 co.resume(); // suspend()

  • 1