問題タブ [flatmap]

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

java - RxJavaのconcatMapとflatMapの違いは何ですか?

これら2つの機能はかなり似ているようです。それらは同じ署名 (accepting rx.functions.Func1<? super T, ? extends Observable<? extends R>> func) を持ち、マーブル ダイアグラムはまったく同じに見えます。ここに写真を貼り付けることはできませんが、ここにconcatMap用の写真とflatMap用の写真があります。resultsの記述には微妙な違いがあるようですObservable。 によって生成されたconcatMapものには、結果の Observable を連結した結果のアイテムが含まれ、 によって生成されたflatMapものには、結果の Observable を最初にマージし、そのマージの結果を発行した結果のアイテムが含まれます。

しかし、この微妙さは私にはまったくわかりません。誰でもこの違いをよりよく説明できますか。理想的には、この違いを示すいくつかの例を挙げてください。

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

scala - このマップ/フラットマップをClojureの理解のために変換する方法は?

この Scala コードを考えると:

次に、理解のためにこれを翻訳します。

私の質問は、このマップ/フラットマップをClojureの理解のためにどのように変換するのですか?

仮定:

  • 可能であれば、慣用的な Clojure (つまり ) を使用して、 /ライブラリmapcatではなくこれを表現したいと思います。しかし、それが最善の方法である場合 (私は学ぶことにオープンです)、それを使用します。algo.monadsfluokitten
0 投票する
1 に答える
175 参照

map - flatmap/mapcat は他の高次関数の基礎として使用できる関数ですか?

map 、 filter 、 reverse などの他の高次関数を定義できる関数としてreduce/を使用できることがわかります。foldl1

に関してもこれを行うことができるようですfoldr。これはmap、 Rich filterHickeyfoldrの Transducers トークの 17:25 からです。

現在、これを説明するいくつかの論文があることがわかりました。

BIRD - 構成的関数型プログラミングに関する講義 - 1988 https://www.cs.ox.ac.uk/files/3390/PRG69.pdf

HUTTON - フォールドの普遍性と表現力に関するチュートリアル - 1999 http://www.cs.nott.ac.uk/~gmh/fold.pdf

さて、今週誰かが言うのを聞いた:

まあflatmap( mapcat) は基本です。これを使って多くの高階関数を表現できます。

したがって、ここではmapmapcatの観点から実装されています。

しかし、あなたは実際に物事をボクシングして、マップ自体が「基本的」であるかどうかを調べているだけなので、私にはそれは人工的だと感じます.

この最後の例が少し不自然に感じる理由は、 mapcat がすでに map に関して定義されているからです。mapcatのソースを見ると、次のようなものが表示されます。

したがって、上記の例は単に concat を逆にして、mapcat 内の map の基になる定義を再利用するだけです。これは私には人工的に感じられます。mapcat を使用して他の HOF を定義できれば問題ありませんが、その方法がわかりません。誰かが私をその方向に向けてくれることを願っています。

私の質問は: flatmap/mapcat は他の高次関数の基礎として使用できる関数ですか?

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

scala - flatten 関数で使用されるパターン マッチングの List[_] の説明

私はscalaに不慣れで、次の関数を理解できません

flatMap特にと パターンマッチングの組み合わせと最初のケースの意味がわかりませんms:List[_]

誰かがそれを説明し、概念を明確にするためのより簡単な例を提供できますか?

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

java - Java 8 flatMap + Optional.of がコンパイルされない

私はflatMap OptionalJavaでsしようとしています。簡単な例を次に示します。

コンパイラから次のエラー メッセージが表示されます。

どうしたの?これは、私が Scala で達成しようとしていることの例です。

戻り値:

予想通り。

これをJavaに変換してコンパイルするにはどうすればよいですか?

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

scala - どちらでも動作するScala Future、flatMap

Future[Either[Future[T1], Future[T2]]] 型のオブジェクトを、Either[Future[T1], Future[T2]] 型のオブジェクトに変換する方法は本当にありますか??

どちらかで動作するflatMapのようなものかもしれません....

私はこのコードを機能させようとしています (ラップされた一連のアクションを実装する同様のコードがありますが、将来は関係ありません。はるかに簡単に機能します)。以下のコードはそれに基づいており、先物を含む状況で機能するように必要な変更が加えられています。


更新 更新 更新

以下のディディエからのコメントに基づいて(Scala Future、どちらでも動作するflatMap)...動作するコードは次のとおりです。

ありがとう、ラカ