問題タブ [closures]

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

function - 「クロージャー」と「ラムダ」の違いは何ですか?

誰か説明してくれませんか?それらの背後にある基本的な概念は理解していますが、それらが同じ意味で使用されているのをよく見かけ、混乱します。

ここまで来て、通常の関数とどう違うのでしょうか?

0 投票する
6 に答える
37906 参照

c# - デリゲートを使用したリストの並べ替えの問題

デリゲートを使用してリストを並べ替えようとしていますが、署名の一致エラーが発生します。コンパイラは、「匿名メソッド」から変換できないと言っています

私は何が欠けていますか?

これが私が見つけたいくつかの参考文献であり、それらは同じようにそれを行います。

開発者フュージョンリファレンス

Microsoftリファレンス

0 投票する
9 に答える
22567 参照

java - Java 7 のクロージャー

クロージャは、来年の夏頃にリリースされる予定の次の Java 標準で導入される可能性があると聞いています。

この構文はどのようになりますか?

Java でのクロージャの導入は、Java 5 でのジェネリックよりも大きな変更であるとどこかで読みました。これは本当ですか? 長所と短所?

(今では、クロージャが次の Java リリースに含まれないことが確実にわかっています)

また

編集: http://puredanger.com/tech/2009/11/18/closures-after-all/ :D

edit2: JDK7 の再考: http://blogs.oracle.com/mr/entry/rethinking_jdk7

edit3: 失う瞬間はありません!: http://blogs.oracle.com/mr/entry/quartet

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

python - 字句クロージャはどのように機能しますか?

Javascriptコードの字句クロージャで発生した問題を調査しているときに、Pythonでこの問題が発生しました。

この例では、を注意深く回避していることに注意してくださいlambda。意外と「444」と書いてあります。「024」を期待します。

この同等のPerlコードはそれを正しく行います:

「024」が印刷されます。

違いを教えてください。


アップデート:

問題iグローバルであることではありません。これは同じ動作を示します。

コメント行が示すように、iその時点では不明です。それでも、「444」と表示されます。

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

c# - 変更された閉鎖へのアクセス

ReSharperはこれが「変更されたクロージャへのアクセス」であると不平を言っていますが、上記はうまく機能しているようです。誰でもこれに光を当てることができますか?

(このトピックはここに続きます)

0 投票する
6 に答える
1896 参照

javascript - javascriptのクロージャと関数の配置

関数の配置は、スコープ内のクロージャのパフォーマンスに影響を与えますか?もしそうなら、これらの機能を配置するのに最適な場所はどこですか?そうでない場合、クロージャによる暗黙の関連付けは、関数を論理的に別の場所に配置するのに十分な理由ですか?

たとえば、fooがlocalStateの値に依存しない場合、 localStateがfooからアクセス可能であるという事実は、fooの実行時間、メモリ使用量などに影響を及ぼしますか?

言い換えれば、これはより良い選択でしょうか?もしそうなら、なぜですか?

ダリウスベーコンは、 localStateはブロック内のどこからでもアクセスできるため、上記の2つのサンプルは同一であると以下に示唆しています。ただし、fooがブロックの外部で定義されている以下の例は、別のケースである可能性があります。どう思いますか?

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

c# - C# でのイベント ベースの非同期。一般的なリファクタリングは可能ですか?

WebClient などの一部の API は、イベント ベースの非同期パターンを使用します。これは単純に見え、疎結合のアプリ (UI の BackgroundWorker など) ではうまく機能する可能性がありますが、連鎖はあまりうまくいきません。

たとえば、非同期処理がブロックされないようにマルチスレッド化されたプログラムを次に示します。(これがサーバー アプリで行われ、何百回も呼び出されると想像してください。ThreadPool スレッドをブロックしたくありません。) 3 つのローカル変数 (「状態」) を取得し、2 つの非同期呼び出しを行い、その結果を最初に2番目のリクエストにフィードします(したがって、それらは並行して進むことができません)。状態も変化する可能性があります (簡単に追加できます)。

WebClient を使用すると、次のようになります (または、クロージャーのように動作するオブジェクトの束を作成することになります)。

}

このイベントベースの非同期パターンをリファクタリングする一般的な方法はありますか? (つまり、このような API ごとに詳細な拡張メソッドを記述する必要はありませんか?) BeginXXX と EndXXX を使用すると簡単ですが、このイベントの方法では方法がないようです。

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

javascript - クロージャを適切に使用して JavaScript のコールバックに状態を渡しますか?

JavaScript で非同期リクエストを行いたいが、何らかの状態をコールバック メソッドに渡したいとします。以下は、JavaScript でのクロージャーの適切な使用法ですか?

そうでない場合、より良い、またはより慣用的な方法はありますか?

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

delphi - 誰かが私に匿名の方法を説明できますか?

Delphi 2009 には、いくつかの優れた機能がありますが、Anonymous メソッドも追加されました。匿名メソッドに関する例とブログ投稿を見てきましたが、まだわかりません。なぜ私が興奮する必要があるのか​​ 誰か説明できますか?

0 投票する
8 に答える
10188 参照

c# - クロージャを使用するのはいつですか?

クロージャのサンプルを見たことがあります- 「クロージャ」とは何ですか?

クロージャをいつ使用するかの簡単な例を誰かが提供できますか?

具体的には、閉鎖が理にかなっているシナリオですか?

言語がクロージャーをサポートしていないと仮定しましょう。それでも同様のことをどのように達成できるでしょうか。

Not to offend anyone, please post code samples in a language like c#, python, javascript, ruby etc.
I am sorry, I do not understand functional languages yet.