タグ

cpsに関するkitokitokiのブックマーク (3)

  • Asynchronous programming and continuation-passing style in JavaScript

    Asynchronous programming and continuation-passing style in JavaScript In this blog post, we give a name to JavaScript’s callback-based asynchronous programming style: continuation-passing style (CPS). We explain how CPS works and give tips for using it. Asynchronous programming and callbacks If you have ever done asynchronous programming in JavaScript, you probably noticed that everything works di

  • 継続渡し形式(CPS)Javascriptプログラミング

    継続とはコンピュータがプログラムを実行しているときの次に何をするのかを表す概念です。詳しくは何でも継続のページを参照し欲しいのですが、継続はプログラムを実行する上で欠かせない存在となっています。ソースコードのある行を実行したら次の行を実行します。関数(サブルーチン)を終了したら、呼び出し元に戻ります。これらは全て継続です。あたりまえと言えばあたりまえのことです。しかし、このあたり前のことを明確に意識しようとすると途端に目の前に霞がかかったようになります。 プログラミングの世界の概念には、禅の公案のようなものがある。それを説明する文章はほんの一文なのに、最初に目にする時、その文は全く意味をなさない、暗号のように感じられる。だがひとたびその概念を理解すると、その概念の説明は確かにその一文で説明されているのがわかるのだ。 そんな、「分かれば分かる」という禅問答の中でも「継続」は最も謎めいたもの

  • CPSチェイン - keigoiの日記

    追記:「東京Node学園#1「非同期プログラミングの改善」のエッセンス」というスライドで、似たようなテクニックが使われているのを見た(p.32-)。 そんなにスジは悪くないのかもしれない。 JavaScriptでは非同期的に関数を呼ぶことが多い。例えばimgタグのロードが終わったら次にAを処理して、それが終わったらBをして…など。 こういうときCPS形式でプログラムを書くはめになる。 func1(arg1, function(res1){ func2(arg2, function(arg3, res2){..})}) かようにJavaScriptでは関数リテラルがすこぶる扱いづらい -- 'function' とか 'return' とか {} のネストとか…あとカリー化するにも一苦労 -- JavaScriptプログラマはどう書くんだろう? こういう非同期呼び出しをうまく同期的に記述する

    CPSチェイン - keigoiの日記
  • 1