タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

CPSに関するyamanetoshiのブックマーク (5)

  • CPS(継続渡し方式)変換で裏返る理由 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日、CPS(継続渡し方式)への変換を話題にしました。 最近CPSに凝っているらしいid:higeponさんが: 人間の皮が裏返る。外が内、内が外。みたいなイメージでしょうか。 と書いてます(CPSで思考する - higepon blog)。この裏返る感じを説明してみたいと思います。 プログラムが、3つの部分A, B, Cから構成されているとします。 A; B; C; A, B, Cは単一の文ではなくて大きなブロックでもかまいません。ブロックAの計算結果は変数aに代入され、ブロックBの計算結果は変数bに代入されるとしましょう。それぞれのブロックを関数化すると、次のようになります。 a = A(); b = B(a); c = C(b); 変数cの値がプログラム全体の結果となります。 中間変数a, bは不要なので除去すると: c = C(B(A())); 結局、プログラム全体の機能は、C(B

    CPS(継続渡し方式)変換で裏返る理由 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • CPS(継続渡し方式)変換をJavaScriptで説明してみるべ、ナーニ、たいしたことねーべよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    久々にThe n-Category Cafeを見たら、Mike Stayによる"The Continuation Passing Transform and the Yoneda Embedding"なんて記事がありました。 米田埋め込みは圏論ではお馴染み。継続渡しへの変換はコンピュータ・プログラミングではお馴染み。 この2つは、実は同じものなんだよ。なんで、誰もこのことを言わないんだろうね? The Yoneda embedding is familiar in category theory. The continuation passing transform is familiar in computer programming. They're the same thing! Why doesn't anyone ever say so? Mike Stayのこの記事、面白いのだ

    CPS(継続渡し方式)変換をJavaScriptで説明してみるべ、ナーニ、たいしたことねーべよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Scheme 入門 16. 継続

    1. 初めに 今回は Scheme の特徴的なデータ型である継続について説明します。 このデータ型は他のプログラミング言語には無いので理解するのは易しくないかもしれません。 とりあえず、感じをつかんでいただければ結構です。 この文書では、まず一般的な継続について説明し、それから Scheme の継続について説明します。 多くの解説書ではまず Scheme の継続について説明してから、継続渡しスタイルについて説明していますが、 先に継続渡しスタイルについて説明したほうが、なぜ Scheme に継続というデータ型があるのかがわかりやすいと思います。 2. 継続とは 継続とはトップレベルに戻ってくるまでにしなければならない計算です。 実は、継続は計算過程において普遍的に存在しますが、明示的に扱われることが少ないため、 なじみのない概念になっています。例えば、[example 1] を見てみると、

  • iriyak:JScript:CPSなプログラムの値を得る

    測定結果から分かること 試験仕様の通りに引数に設定すると次のようなことがわかります。 |find| = Length('abcdefghij') = 10 |cont(find3_cpsの場合)| = 20 |cont(find3_cpsの場合)| = |find3_cps| + |terminate| ここで |find3_cps| = 2 × Length('abcdefghij') - 1 かつ |terminate| = 1 |cont(find4_cpsの場合)| = |cont(find3_cpsの場合)| = 20 |cont(find5_cpsの場合)| = |cont(find3_cpsの場合)| = 20 |cont(find6_cpsの場合)| = 11 |cont(find6_cpsの場合)| = |find6_cps| + |terminate| ここで |f

  • Scheme:CPS

    pitecan.comへの移転のためか、増井さんちのWiki掲示板は以前のコンテンツがなくなっているようなので、Google cacheから転載します。-- SHIMADA (2003/07/26 05:41:15 PDT) 転載ここから ---- 「普通の奴らの上を行け」の追記文に出てくる、WebBasedアプリケーションと継続について。 継続と聞くとSchemeのcall/ccを連想するかもしれませんが、むしろここで重要なのは、「継続渡しスタイル(Continuation Passing Style, CPS)」です。CPSそのものは、 PerlでもRubyでもJavaでも書けます。どっちかというと、普通の手続き指向から考え方を変えるのがポイントなんで。 CPSのポイント。手続きは呼び出したら戻ってきません。行ったっきりです。ですから、その手続きの後で何か別のことをやりたいなら、「その

    Scheme:CPS
  • 1