問題タブ [for-comprehension]

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 に答える
3776 参照

scala - Scala: 将来の理解のための ExecutionContext

を作成したり、 や のようなメソッドを適用したりするときに、futureそれらに ExecutionContext を指定できます。onSuccessmap

例えば、

ただし、将来の for-comprehension を使用する場合、その部分に ExecutionContext を指定するにはどうすればよいyieldですか?

そして、指定されていない場合、どの ExecutionContext がコードを生成して実行しますか?


編集

わかった。回答のおかげで、私は何かを見つけました。暗黙のExecutionContext (のような)
を定義またはインポートしないと、for-comprehension はコンパイルされません。つまり、for-comprehension は暗黙の ExecutionContext を使用します。Implicits.global

では、暗黙の ExecutionContext なしで for-comprehension を使用するにはどうすればよいでしょうか、つまりどのように指定すればよいのでしょうか?

0 投票する
0 に答える
178 参照

generator - フィルタリングを使用してpythonジェネレーター式をチェーンするにはどうすればよいですか?

ジェネレーターを連鎖させようとしているので、バッチで単一の操作を行うのではなく、大きな CSV ファイルを行のストリームとして処理できます。

このようにして、データセット全体をメモリにロードすることを避けて、各ステップの各反復を遅らせることができます。

ジェネレーター式は、if ステートメントを使用して出力をフィルター処理しようとする場合を除いて、正常に機能します。

これは機能します: 一度に 1 つの反復のみが消費されます

next()次に、結果の iterableを呼び出すことで、一度に 1 行ずつ取得できます。ただし、これを行うと

その後、イテレータは が使い果たされるまで実行を続けます。なんで?回避策は何ですか?

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

scala - Scala 非同期/コールバック コードの書き換え

パスごとにユーザーをチェックする必要がある単純なコード。ユーザーはアクティブで、その後、最終ログイン日時を更新します。

flatMap/map スパゲッティの少ないものに書き直す方法は?

別の解決策

}

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

scala - リストを別の特性のマップにマップする最良の方法

List[TraitA]のオブジェクトがあるとしましょう。TraitAプロパティを提供しますpropX : String。このリストのサブセットが のインスタンスでもあることはわかっていますがTraitB、これはプロパティ を提供しませんpropX

たとえば、次のようになります。

リスト内のいくつかのインスタンスは、extend TraitAその他のものextend TraitA with TraitBです。持っているインスタンスのみを抽出する必要がありますが、からTraitBプロパティを保持する必要があります。必要なのは、この値に従ってのインスタンスをグループ化するです。propXTraitApropXMapTraitB

したがって、TraitBインスタンスからインスタンスのこのサブセットを抽出する必要がありList[TraitA]ます。それらの一部はであり、 キーがfromであるTraitA with TraitBを作成します。Map[String, List[TraitB]]propXTraitA

for私は内包表記をいじっていましyieldList[(String, TraitB)]groupBy _.1、おそらく最初のジェネレーターがTraitA.

私はこれを試しましたが、予想されるタイプが次のように不平を言いますList[(String, TraitA)]:

逆に、filterパターンマッチングでリストするとフィルタリング機能でTraitB見えなくなってしまいます。propX

これを達成するための最良のアプローチは何ですか?

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

racket - ラケットの for/list とカスタムの for/bytes

私は Racket で遊んでいて、バイト文字列の理解を逃しました。ドキュメントの例を見つけたときfor/fold/derived、初心者なら誰でもそうするように、独自のバイト文字列理解マクロを作成することにしました。

関連する質問がいくつかあります。

  1. とにかくこれはラケットのやり方ですか?
  2. マクロは大丈夫ですか?基本的に、for/fold/derivedドキュメントの例をマクロ展開されたものと組み合わせましたfor/vector
  3. 明らかなパフォーマンスの最適化はありますか?

残念ながら、(list->bytes (for/list ...このマイクロベンチマークよりも実際には高速ではありません:

3212ms 対 3690ms になります。50000 より小さいサイズの場合はfor/bytes負け、それより大きいサイズの場合は勝ちです。

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

scala - このScalaステートメントを「脱糖」するにはどうすればよいですか?

Scala での LINQ スタイルのクエリはjson4s次のようになります。

(2)の仕組みがよくわかりません。このステートメントをどのようにfor脱糖しますか?

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

javascript - Coffeescript 配列内包表記スキップ値

coffeescript に移植する RPC ライブラリがあります。実行する必要があることの 1 つは、関数呼び出しパラメーターを並べ替えて、それらが正しい順序になっていることを確認することです。これを行うために、次のような「配列内包表記」を作成しました。

「cb」パラメータは、コールバックを介して結果を提供するために、すべてのリモート プロシージャによって使用されます。クライアントはこのコールバックを提供しないため、これは内包表記でスキップする必要があります (サーバーは、結果をエンコードしてクライアントに返すために書き込むことができるようにするためです)。私の問題は、理解がこれに対して「未定義」の値を入れていることです。そのため、不格好な[-1..-1]構文を使用して未定義をコールバックに置き換える必要があります。私がやりたいのは、それをスキップしてargValues.push cb.

このような値を理解してスキップさせる方法はありますか?

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

scala - Scala: 理解のための NoSuchElementException

サイズをカウントする必要がある Web リクエストの将来の結果があります。現在の応答に項目がある場合は、次のセットを取得するために別の要求を行う必要があります。現在の応答が空の場合は、完了です。

私が今持っているコード:

これは、現在の要素がなくなるまではうまくいくようで、current.last.name を取得しようとして NoSuchElementException が発生します。

!(current.isEmpty) がフィルターに展開される場合の条件を理解しているので、ここで本当に欲しいものではありません。私が欲しいのは:

ここでは、先物の収集を簡単に処理するために for 内包表記を使用しています (少なくとも、これは私が過去に行った方法です)。ガイダンス/読むべきものはありますか?私はscalaにかなり慣れていないので、優しくしてください。