問題タブ [continuations]

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 投票する
2 に答える
836 参照

c# - amb-operator による非決定的な選択

C# で非決定論的な選択のためにMcCarthy のamb-operatorを実装することは可能ですか?

どうやら .NET には継続サポートがyield returnありませんが、役立つ可能性があります。これは、F# のような他の静的 .NET 言語で可能でしょうか?

0 投票する
4 に答える
1937 参照

scheme - call/ccの詳細

これは、 call / ccとは何ですか?に関連しています。、しかし私は自分の目的のためにこの質問をハイジャックしたくありませんでした、そしてsetjmp/longjmpへのアナロジーのようなその議論のいくつかは私を回避します。

継続とは何かについては十分に理解していると思います。これは、現在の呼び出しスタックのスナップショットだと思います。なぜこれが面白いのか、継続で何ができるのかについては議論したくありません。私の質問は、より具体的には、なぜcall / ccに関数の引数を提供する必要があるのですか?なぜcall/ccは現在の継続を返さないので、私はそれで好きなことを何でもすることができます(それを保存し、それを呼び出し、あなたはそれに名前を付けます)?この他の質問(http://community.schemewiki.org/?call-with-current-continuation-for-C-programmers)からのリンクでは、「本質的に、それはあなたに継続を取得するためのクリーンな方法です。そして、保存されたポイントに戻る後続のジャンプの邪魔にならないようにしてください。」しかし、私はそれを取得していません。不必要に複雑に見えます。

0 投票する
7 に答える
11265 参照

functional-programming - Clojure での継続

どこかでリッチ・ヒッキーが言ったのを読んだ:

「継続は理論的にはうまくいくかもしれないが、実際にはうまくいかないと思う」

私はクロージュアに慣れていません。
1. clojure には継続がありますか?
2. いいえの場合、継続は必要ありませんか? 私は特にこの男から多くの良い例を見てきました. 代替手段は何ですか?
3. はいの場合、ドキュメントはありますか?

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

jetty - "Jetty 6 Continuations" とは何ですか? また、プログラミング言語で見られる継続とどのように比較されますか?

Webサーバーとプログラミング言語の「継続」メカニズムを説明する答えを探しています。

私の理解では、継続を使用すると、明示的なスレッド化なしで、「pi の数字」プロデューサーが「pi の数字」コンシューマーと通信することは簡単です。

Jetty の継続について非常に良いことを聞いています。他の人がどう思うか興味があります。

私はすでに答えを見つけているかもしれませんが、とにかくここで質問しています-記録のために。

0 投票する
3 に答える
337 参照

monads - 純粋関数型プログラミング言語における副作用のメソッド

現時点では、副作用を純粋な関数型プログラミング言語に統合する次の方法を認識しています。

  • 効果システム
  • 続き
  • ユニークなタイプ
  • モナド

モナドは、これを行うための最も効果的で最も一般的な方法であるとよく言われます。

他にどのような方法がありますか? それらはどのように比較されますか?

0 投票する
10 に答える
5203 参照

c# - コルーチンに代わるデザインパターン

現在、順次実行されるキューに多数のC#計算(メソッド呼び出し)があります。各計算では、待ち時間の長いサービス(ネットワーク、ディスクなど)が使用されます。

モノコルーチンを使用して、前の計算が高遅延サービスが戻るのを待っている間、計算キュー内の次の計算を続行できるようにしました。ただし、私はモノコルーチンに依存しないことを好みます。

高遅延サービスが戻るのを待っている間に追加の計算を処理できるようにする、純粋なC#で実装可能なデザインパターンはありますか?

ありがとう

アップデート:

膨大な数(> 10000)のタスクを実行する必要があり、各タスクは高レイテンシのサービスを使用します。Windowsでは、それほど多くのスレッドを作成することはできません。

アップデート:

基本的に、Stackless Python(http://www.stackless.com/)のタスクレットの利点(次のように)をエミュレートするデザインパターンが必要です。

  1. 膨大な数のタスク
  2. タスクがブロックされた場合、キュー内の次のタスクが実行されます
  3. 無駄なCPUサイクルはありません
  4. タスク間の最小限のオーバーヘッド切り替え
0 投票する
1 に答える
315 参照

c# - Mono Continuing - store() の後もメモリが増加し続ける

これが Mono Continuations の continuation_store (...) です。以下のコードを見ると、store() が次の 2 つの分岐に従っているかのように見えます。

  1. cont->saved_stack && num_bytes <= cont->stack_alloc_size
    • メモリを直接使用する
  2. そうしないと
    • gc で使用済みのメモリを解放し、新しいメモリを作成します。

ただし、奇妙なことに、continuation_store() を繰り返し使用すると、後のステップで巨大で遅延の多い GC 操作が行われるまでメモリ使用量が増加します。なぜこれが起こるのか誰か説明できますか?

ありがとう

0 投票する
11 に答える
17357 参照

java - Javaでの継続

Javaで継続の適切な実装はありますか?

もしそうなら、オーバーヘッドはどのようなものですか?JVMは、このようなことを念頭に置いて設計されていませんでしたね。それで、この種の穀物に反対するのですか?

0 投票する
7 に答える
941 参照

ruby - ファーストクラスの継続の短所

継続をファーストクラスのオブジェクトとして公開することに対して平準化された批判のいくつかは何ですか?

ファーストクラスの継続があるのは良いことだと思います。これにより、命令の実行フローを完全に制御できます。上級プログラマーは、特定の種類の問題に対する直感的なソリューションを開発できます。たとえば、継続はWebサーバーの状態を管理するために使用されます。言語の実装は、継続に加えて有用な抽象化を提供できます。たとえば、グリーンスレッド。

これらすべてにもかかわらず、ファーストクラスの継続に反対する強い議論はありますか?

0 投票する
7 に答える
24411 参照

scala - Scala 継続とは何ですか? なぜそれを使用するのですか?

Programming in Scalaを終えたばかりで、Scala 2.7 と 2.8 の間の変更点を調べています。最も重要と思われるのは継続プラグインですが、それが何に役立つのか、どのように機能するのかわかりません。非同期 I/O に適していることがわかりましたが、その理由はわかりませんでした。このテーマに関するより人気のあるリソースのいくつかは次のとおりです。

そして、スタックオーバーフローに関するこの質問:

残念ながら、これらの参考文献はいずれも、継続の目的やシフト/リセット関数の役割を定義しようとはしていません。リンクされた記事の例がどのように機能するか (またはそれらが何をするか) を推測することはできませんでした。3番目の記事のこの単純なものでさえ:

なぜ結果は 8 なのですか? それはおそらく私が始めるのに役立つでしょう。