問題タブ [continuation-passing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
440 参照

scheme - let式をcpsに変換する方法は?

let式を次のような継続渡しスタイルに変換する方法を知りたいです。

いくつか例を教えてください。ありがとうございます。

0 投票する
2 に答える
3234 参照

node.js - Haskell によるノンブロッキング IO

重複の可能性:
Node.js に対する Haskell の応答は?
Haskellで複数のファイル/ソケットが読み取り/書き込み可能になるのを監視するにはどうすればよいですか?

nodejsのようにブロックしない方法でIOを実行するHaskellプログラムを書くことは可能ですか?

たとえば、遠く離れたデータベースから 10 件のレコードを取得したいので、10 件のリクエストを同時に発行し、結果が得られたら、このコレクションを返します。IO モナドは役に立ちません。なぜなら、モナドは明示的に bind で計算をシリアライズするからです。次に必要な計算を渡す継続渡しスタイルにも同じ問題があると思います。これも計算をシリアル化します。スレッドで作業したくないので、別の解決策を探しています。これは可能ですか?

0 投票する
1 に答える
268 参照

scala - null.asInstanceOf[がなぜ] 不合格?

null.asInstanceOf[<some CPS annotated type>]コンパイルに失敗する論理的な理由はありますか?

コンテキストについては、このgithub問題スレッドを参照してください。

0 投票する
2 に答える
1369 参照

functional-programming - 継続/CPSを使用してOCamlに末尾再帰のMergeSortを実装する

でを実装しようとしてtail-recursive MergeSortOCamlます。

Mergesort当然、末尾再帰ではないので、それを実装するために使用しCPSています。

また、私の実装は、OCamlの末尾再帰マージソートに触発されています

以下は私のコードです



コンパイルして、で実行すると、1,000,000 integersのエラーが発生しますstackoverflowなんで?


編集

テストに使用したコードは次のとおりです。

http://try.ocamlpro.com/、このエラーが発生しました:Exception: RangeError: Maximum call stack size exceeded.

local ocaml top level、問題ありませんでした

0 投票する
1 に答える
273 参照

scala - Scala CPS フレームワークでの一貫性のない動作

各データ依存関数を並行してステップ実行することにより、バッチ データ フェッチを有効にするコルーチン フレームワークを構築しようとしています。これが私がこれまでに持っているものです:http://pastie.org/7147798

  1. これはうまくいきません

    次のエラーが表示されます

    これは機能します

    /li>
  2. これはうまくいきません

    次のエラーが表示されます

    これは機能します

    しかし、次の警告が表示されます

    /li>
0 投票する
0 に答える
325 参照

javascript - 配列とオブジェクトの反復のための再帰上のトランポリン

おそらく「金曜日の 5:00 以降で、家に帰りたい」効果ですが、この問題に困惑しています。それぞれを呼び出す再帰的な反復子メソッドがあります。

これは、大規模なデータセットでは非常に遅くなります (以下で説明します)。@raganwald がここで説明しているように、トランポリンは問題の解決策です。. 私の質問は、この再帰関数をリファクタリングしてトランポリン手法を利用するにはどうすればよいですか?

したがって、ツリーの現在の状態を要求するポーリング メカニズムがあります。この場合は、次のようなロケーション ツリーです。

ツリーは、場所に属するもののグリッドでレンダリングされます。グリッド内の場所を持つ行ごとに、ルートをこの行の場所に設定してツリーをレンダリングする必要があります。したがって、次の場合:

したがって、これらの一部またはすべてがサーバー側で処理される可能性があることは気にしないでください。後でデータ フェッチのパフォーマンスを最適化します。

トランポリンまたはCPS スタイルを使用するように各メソッドを書き直す効率的な方法はありますか?

0 投票する
1 に答える
1091 参照

haskell - Haskell CPS:Contモナドを使用してマップおよびフィルタ関数を実装する方法は?

私は CPS を学ぼうとしてきましたが、あまり頭に浮かんでいなかったようです。Cont モナドを使用して基本的なフィルターとマップを実装できますか?