問題タブ [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.
java - RxJavaのconcatMapとflatMapの違いは何ですか?
これら2つの機能はかなり似ているようです。それらは同じ署名 (accepting rx.functions.Func1<? super T, ? extends Observable<? extends R>> func
) を持ち、マーブル ダイアグラムはまったく同じに見えます。ここに写真を貼り付けることはできませんが、ここにconcatMap用の写真とflatMap用の写真があります。resultsの記述には微妙な違いがあるようですObservable
。 によって生成されたconcatMap
ものには、結果の Observable を連結した結果のアイテムが含まれ、 によって生成されたflatMap
ものには、結果の Observable を最初にマージし、そのマージの結果を発行した結果のアイテムが含まれます。
しかし、この微妙さは私にはまったくわかりません。誰でもこの違いをよりよく説明できますか。理想的には、この違いを示すいくつかの例を挙げてください。
scala - このマップ/フラットマップをClojureの理解のために変換する方法は?
この Scala コードを考えると:
次に、理解のためにこれを翻訳します。
私の質問は、このマップ/フラットマップをClojureの理解のためにどのように変換するのですか?
仮定:
- 可能であれば、慣用的な Clojure (つまり ) を使用して、 /ライブラリ
mapcat
ではなくこれを表現したいと思います。しかし、それが最善の方法である場合 (私は学ぶことにオープンです)、それを使用します。algo.monads
fluokitten
map - flatmap/mapcat は他の高次関数の基礎として使用できる関数ですか?
map 、 filter 、 reverse などの他の高次関数を定義できる関数としてreduce
/を使用できることがわかります。foldl1
に関してもこれを行うことができるようですfoldr
。これはmap
、 Rich filter
Hickeyfoldr
の 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
) は基本です。これを使って多くの高階関数を表現できます。
したがって、ここではmap
mapcatの観点から実装されています。
しかし、あなたは実際に物事をボクシングして、マップ自体が「基本的」であるかどうかを調べているだけなので、私にはそれは人工的だと感じます.
この最後の例が少し不自然に感じる理由は、 mapcat がすでに map に関して定義されているからです。mapcatのソースを見ると、次のようなものが表示されます。
したがって、上記の例は単に concat を逆にして、mapcat 内の map の基になる定義を再利用するだけです。これは私には人工的に感じられます。mapcat を使用して他の HOF を定義できれば問題ありませんが、その方法がわかりません。誰かが私をその方向に向けてくれることを願っています。
私の質問は: flatmap/mapcat は他の高次関数の基礎として使用できる関数ですか?
scala - flatten 関数で使用されるパターン マッチングの List[_] の説明
私はscalaに不慣れで、次の関数を理解できません
flatMap
特にと パターンマッチングの組み合わせと最初のケースの意味がわかりませんms:List[_]
誰かがそれを説明し、概念を明確にするためのより簡単な例を提供できますか?
java - Java 8 flatMap + Optional.of がコンパイルされない
私はflatMap
Optional
Javaでsしようとしています。簡単な例を次に示します。
コンパイラから次のエラー メッセージが表示されます。
どうしたの?これは、私が Scala で達成しようとしていることの例です。
戻り値:
予想通り。
これをJavaに変換してコンパイルするにはどうすればよいですか?
scala - どちらでも動作するScala Future、flatMap
Future[Either[Future[T1], Future[T2]]] 型のオブジェクトを、Either[Future[T1], Future[T2]] 型のオブジェクトに変換する方法は本当にありますか??
どちらかで動作するflatMapのようなものかもしれません....
私はこのコードを機能させようとしています (ラップされた一連のアクションを実装する同様のコードがありますが、将来は関係ありません。はるかに簡単に機能します)。以下のコードはそれに基づいており、先物を含む状況で機能するように必要な変更が加えられています。
更新 更新 更新
以下のディディエからのコメントに基づいて(Scala Future、どちらでも動作するflatMap)...動作するコードは次のとおりです。
ありがとう、ラカ