タグ

co-routineに関するkiyo_hikoのブックマーク (5)

  • yield(いーるど)は、つまるところコルーチンなんだよね - Bug Catharsis

    今更感は否めないが、yield(いーるど)についてちょっとしたおさらいを。 yield(いーるど)はコルーチンである ご存知のとおり、yieldはC#2.0から主にイテレータの実装の簡素化を目的として導入された便利機能。 このyield キーワードは単体では意味を成さない。yield returnあるいはyield break とすることで初めて機能する。*1 このyieldステートメント記法およびその動作は、手続き型の実装に慣れたプログラマにとっては 少々異質に感じるかもしれない。なぜ異質に感じるだろうか?それはyieldがコルーチンとして振舞うからに他ならない。 ■コルーチン コルーチン(co-routine)とはプログラミングの構造の一種。サブルーチンがエントリーからリターンまでを一つの処理単位とするのに対し、コルーチンはいったん処理を中断した後、続きから処理を再開できる。接頭辞co

    yield(いーるど)は、つまるところコルーチンなんだよね - Bug Catharsis
  • コルーチンをCommon Lispで簡単に定義 - さくらんぼのlambda日記

    また更新滞ってしまいました...。なかなか長続きしませんね。 久しぶりに日記のネタが浮かんだので、メモがてら書きます。 ゲームを作っているとコルーチンが欲しくなることが多々あります。例えば、敵の行動が「飛行状態から通常攻撃をして着地から必殺技を出す」という連携攻撃を考えると、普通に状態遷移でやると、 飛行状態 通常攻撃 着地 必殺技 こんな状態を考える必要があるのではないでしょうか?そしてStateパターンなどを使って実装している場合には、このすべての状態に対してクラス定義をしたり、関数定義をしたりする必要があります。 コルーチンを使うとこういう時に便利です。コルーチンは、「関数を途中まで実行して、次に同じ関数を呼んだ時には前回の続きから実行する」というものです。pythonのジェネレータとかで同様のことができますね。 で、common lispでそれを実現するのはcl-contでできるの

    コルーチンをCommon Lispで簡単に定義 - さくらんぼのlambda日記
  • コルーチンと運命の出会い

    myugaru 仕事(昔)=ヲタク系プログラマー~マスコミ系サポートデスク 仕事(今)=電子機器系サービス業 趣味a=パズルゲーム全般、シューティングは主に見学 趣味b=画像処理関係の勉強 趣味c=プログラミング言語の勉強 趣味d=アキバ系ヲタク 趣味e=芸能アイドル系ヲタク d,e色の強いもう一つのブログ 最新目標=シューティングゲームを作る ああ、とうとう出会ってしまいました。たぶんちょっとゲームに詳しい人ならば「myugaruはいつこれに気付くのだろう?」とか思っていたのではないでしょうか? かれこれ3ヶ月くらいかかってやっと出会いました。 コ ル ー チ ン 今かなり笑われてる気がするけど気にせず感動に浸っておきます。 なんて素敵なコルーチン。 おかげで私が考えていた「ややこしいタスクシステム構想」はほとんど0に帰しましたw じゃあこっから真面目にコルーチンについて語ります。 コル

    kiyo_hiko
    kiyo_hiko 2012/02/27
    タスクシステムにいいらしい
  • スパークスシステムズジャパン フォーラム - 掲示板

    ご質問の内容は、Enterprise Architectの内容というよりは 「UMLではコルーチンをどう表現するか?」という話ではないかと 思いました。 (もし誤解があればご指摘ください) 私が知る限りでは、UML2.1の仕様として、こうした処理を 適切に表現するための表記はないのではないかと思います。 何かの表現を活用して、あとはノートなどで補足する形に なるのでしょうか? (この掲示板をご覧の方で、良いアイデアがあれば教えて下さい。) お力になれず申し訳ございません。

    kiyo_hiko
    kiyo_hiko 2012/02/27
    コルーチンそのものを表せるUML記法は存在しないので、工夫しなければ表現できない、という話
  • Perlで学ぶコルーチン

    How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow

    Perlで学ぶコルーチン
  • 1