[解決済み] フィルタの代わりにwithFilter
2023-07-02 08:12:34
質問
mapやflatmapなどの関数を後から適用する場合、filterではなくwithFilterを使用する方が常にパフォーマンスが高いのでしょうか?
なぜmap、flatmap、foreachしかサポートされていないのですか?(forall/existsのような関数も同様に期待されています。)
どのように解決するのですか?
から Scala のドキュメント :
注意: この
c filter p
とc withFilter p
は、前者が が新しいコレクションを作成するのに対し、後者では その後のmap
,flatMap
,foreach
そしてwithFilter
の操作を行うことができます。
そこで
filter
は元のコレクションを取り出し、新しいコレクションを生成しますが
withFilter
はフィルタリングされていない値を非正規に(つまり、怠惰に)後の
map
/
flatMap
/
withFilter
を呼び出すことで、(フィルタリングされた)コレクションを再度通過する手間を省くことができます。したがって、後続のメソッド呼び出しに渡すときに、より効率的になります。
実際には
withFilter
はこれらのメソッドの連鎖を扱うために特別に設計されたもので、for comprehension はこのようにデスガされます。他のメソッド(例えば
forall
/
exists
) はこのために必要なので、これらは
FilterMonadic
の戻り値の型は
withFilter
.
関連
-
[解決済み] Scalaのcase classとclassの違いは何ですか?
-
[解決済み] Scalaのforループは下降か減少か?
-
[解決済み] 末尾再帰関数が最適化されるためのScalaアノテーションは何ですか?
-
[解決済み] Scalaでリストを2つのフィールドでソートするには?
-
[解決済み] Scalaです。ScalaのコレクションにおけるTraversableとIterableの違いは何ですか?
-
[解決済み] Scalaの定数の命名規則?
-
[解決済み] 関数型プログラミング(特にScalaとScala API)におけるreduceとfoldLeft/foldの違いとは?
-
[解決済み] Mapにkeyやvalueが存在するかどうかを確認するには?
-
[解決済み] Scalaで関数を定義する3つの方法の違い
-
[解決済み] 複数の先物を待つには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 述語で配列を2つに分割するには?
-
[解決済み] scalaの列挙を理解する
-
[解決済み] Scalaのパターンマッチはなぜ変数で機能しないのですか?
-
[解決済み] SBTのrunアクションでアプリケーションを実行するために、JVMの最大ヒープサイズを"-Xmx "で指定する方法は?
-
[解決済み] Scala の "new" キーワード
-
[解決済み] Scala で複数の暗黙の引数を持つ関数を定義する
-
[解決済み] scalaのslickメソッド、今ひとつ理解できない。
-
[解決済み] 複数の先物を待つには?
-
[解決済み] scalaで空リストを宣言し、文字列を追加するには?
-
[解決済み] Scalaの複数パラメータリストと複数パラメータ/リストの違いは何ですか?