タグ

rubyとcallccに関するkgbuのブックマーク (5)

  • Greenbear Diary - call/ccの7つの典型的な使い方

    ■ [scheme][ruby] call/ccの7つの典型的な使い方 わだばさん(でいいのかな?)のところで紹介されていたCall with Current Continuation Patternsをちょっと見てみた。 7/26 第9回 慢性的CL勉強会@Lingr 8時だョ!全員集合まとめ - わだばLisperになる - cadrグループ それによると、callccの典型的な使い方には以下のようなものがあるらしい。 (無限)ループからの脱出 再帰からの脱出 Cでいうcontinue 脱出+再入 コルーチン non-blindな(??)バックトラッキング マルチタスク で、だ。 1, 2, 3は、breakとかcontinueがある言語なら普通にできる。 5や4の一部は、PythonのジェネレータとかRuby1.9のFiberでできる。 7はコルーチンやスレッドを使えばできる。 とな

    Greenbear Diary - call/ccの7つの典型的な使い方
    kgbu
    kgbu 2008/07/31
    コメント欄も注目したい
  • callcc-lib

    Non trivial examples of Continuation of Ruby co-thread.rb (CoThread: a generic library -- step-wise threading) proc.rb (Proc by Continuantion) co-queue.rb (Queue by Continuation) co-sizedqueue.rb (SizedQueue by Continuation) generator.rb (external iterator, EndOf-type) iterator.rb (external iterator, hasMore?-type) iterator2.rb (external iterator, hasMore?-type, cofork version) sync-eqch.rb (synch

  • 継続

    継続、continuationと来ればやはりSchemeの話になるのだろうか。一般社会で schemeと言えば「すきーむ(n)計画。陰謀。」であるがソフトウェア業界で Schemeと言ったらLispの一種のことだ。Lispには変種が腐るほど存在するが、 Common Lispと並んで有名なのがSchemeである。Common Lispが標準化の課程でゴテ ゴテと装備して巨大化したのに対し、Schemeは遥かにコンパクトでクリアな仕 様を持つ。またSchemeとは言語の一般名であり、その実装にはGaucheとか scmとかguileとかMIT Schemeなどがある。 さてCall/CC、正式名称Call with Current Continuation、について 説明しよう。Call/CCはちょっと見はsetjmp/longjmpと同じように見えるのだが、 スタックが深くなる方向にもジャ

  • Matzにっき(2004-07-23)

    << 2004/07/ 1 1. [OSS]「オープンコミュニティーの確固たる盟主」をアピールするSunのマクニーリーCEO 2 1. [morg]基設計完 3 1. [家族]希少生物発見 4 1. [教会]松江 5 1. [morg]実装フェーズ 6 1. [OSS]Javaのオープンソース化で苦悩するサン--レッシグらの助言も 2. CNETにトラックバックが届かない 3. Sunと互換性 7 1. [OSS]オープンソースによる互換性の喪失 8 1. [OSS]SunがJavaをオープンソース化した方が良い4つの理由 2. [morg]バックエンドほぼ完了 9 1. 健康診断 2. Estraier 3. [Morg]フロントエンド 4. [OSS]風博士 5. [OSS]フォークと互換性 6. 期日前投票 10 1. [家族]図書館 2. [OSS]風博士(2) 11 1. [教

    kgbu
    kgbu 2007/06/25
    継続の実用例とか
  • Route 477(2007-06-20)

    ■ [ruby][event] Ruby勉強会@関西-16「30分でわかるcallccの使い方」 先週末のRuby勉強会@関西で、Rubyにおけるcallccの使い方について発表させていただきました。 スライド: pdf ppt 継続の説明については「なんでも継続」がよく参照されるんだけど、 ちょっと説明がボトムアップすぎると思うので(僕も最初に読んだときは全然分からなかった)、「callccで何ができるか」という応用面から攻める 構成にしてみました。 最初は「継続かわいいよ継続」「それをすてるなんてとんでもない」と思ってたんだけど、 いろいろ調べてるうちになんでcallccが嫌われるのかが理解できてしまった。callccはかわいいけど、非常に手のかかる奴らしい。 しかも、面白い利用例はいっぱいあるけど実用的な例があんまりないんだよね^^;。 callccが無くなるとRubyの「かっこよさ

    Route 477(2007-06-20)
  • 1