タグ

perlとcontinuationに関するishideoのブックマーク (2)

  • PerlでContinuationベースのウェブサーバ - karasuyamatenguの日記

    Continuationっていうのはプログラムの実行過程を途中でフリーズして別のところから再スタートさせたりすることができるという頭の痛くなるような機能だ。はやり御家はscheme(call/cc)だけど他のハイレベル言語でもできるものがあるようだ。 ウェブフレームワークとしてはsmalltalkのseasideやcommon lispのuwcが有名。RubyPythonもGeneratorを使って実装したものがあるらしい。あと、アプリケーションとしてはPaul Graham氏のnews.ycombinator.comが有名。これは彼の「100年言語」(実はPLTの上にマクロで作ったLispの方言)によって実装されている。 perlにはcall/ccやgeneratorのようなコールが無いのでContinuationベースのフレームワークは無いと思っていたが、間違っていた。Perlにで

    PerlでContinuationベースのウェブサーバ - karasuyamatenguの日記
  • なんでも継続、Perl で。 : torus solutions!

    最近よくコンティニュエーション・パッシングだとか、 継続ベースの○○とか、 そういう話題を耳にします。 でも継続っていうのが何なのか良く分からなかったので、 お正月休みに Shiro Kawaiさんの なんでも継続 を読んでみました。 今までずっと難しいだろうと思って読んでなかったんだけど、 これがまたとても分かりやすくて面白かったので、 途中にあげられていたサンプルコードを Perl でも書いてみました。 普通の再帰形式 Scheme では (define (leaf-count tree) (if (pair? tree) (+ (leaf-count (car tree)) (leaf-count (cdr tree))) 1)) Perl では Perl にはペアがないので、 2 要素の配列でエミュレートすることにします。 それ以外はそのまんまです。 sub leaf_count

  • 1