问题标签 [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 有什么区别
看起来这两个功能非常相似。它们具有相同的签名(接受rx.functions.Func1<? super T, ? extends Observable<? extends R>> func
),并且它们的大理石图看起来完全相同。无法在此处粘贴图片,但这是concatMap的一张,这是flatMap的一张。对 results的描述似乎存在一些细微的差别Observable
,其中一个由concatMap
contains 产生的项是由连接结果 Observables 产生的,而一个由flatMap
contains 产生的项是由首先合并产生的 Observables 并发出该合并的结果而产生的。
但是,我完全不清楚这种微妙之处。谁能更好地解释这种差异,最好举一些例子来说明这种差异。
javascript - 如何在 flatMap 之后记忆值以使用它?
回调中需要user
对象onValue
scala - 地图上的 FlatmapValues
给定一个Seq
元组,例如:
我想groupBy
然后flatMap
获得类似的值:
我的第一个实现是:
我想知道是否有一种更有效、可能更简单的方法来实现这一结果。
scala - 如何将此地图/平面地图转换为 Clojure 中的理解?
鉴于此 Scala 代码:
然后将其翻译成这个以便理解:
我的问题是如何在 Clojure 中将此地图/平面地图转换为理解?
假设:
- 如果可能的话,我想使用惯用的 Clojure(即
mapcat
)来表示这个而不是algo.monads
/fluokitten
库。但是,如果这是最好的方法(我愿意学习),那就使用它。
scala - 如何为 Option 实现 flatMap
我正在尝试实现map
andflatMap
作为 的扩展/丰富Option
,而不作弊并查看它是如何在 Scalaz 中实现的。
所以这是我在卡住之前得到的:
我真正需要的是基本功能,所以我可以做这样的事情:
有什么提示吗?
map - flatmap/mapcat 是不是可以作为其他高阶函数基础的函数?
我们可以看到我们可以使用reduce
/foldl1
作为函数,通过它我们可以定义其他高阶函数,例如 map、filter 和 reverse。
我们似乎也能够做到这一点foldr
。这里是来自Rich Hickey在 17:25map
的Transducers 演讲。filter
foldr
现在事实证明,有一些论文可以解释这一点:
BIRD - 构造函数式编程讲座 - 1988 https://www.cs.ox.ac.uk/files/3390/PRG69.pdf
HUTTON - 关于 fold 的普遍性和表现力的教程 - 1999 http://www.cs.nott.ac.uk/~gmh/fold.pdf
这周我听到有人说:
Well
flatmap
(mapcat
) 是基本的——你可以用它来表达很多高阶函数。
所以这里是map
按照mapcat来实现的。
但对我来说,这感觉很不自然,因为您实际上只是在打量事物并确定地图本身是否是“基本的”。
最后一个例子感觉有点人为的原因是 mapcat 已经根据 map 进行了定义。如果您查看mapcat 的源代码- 我们会看到类似以下内容:
所以上面的例子只是颠倒了 concat 并重用了 mapcat 内部的 map 的底层定义——这对我来说是人为的。现在如果可以使用 mapcat 来定义其他 HOF 就可以了——但我不知道该怎么做——我希望有人能指出我的方向。
我的问题是:flatmap/mapcat 是一个可以用作其他高阶函数基础的函数吗?
java - Java 8 Optional 和 flatMap - 有什么问题?
一些代码:
为什么我不能这样做?在 flatMap 方法中,我收到错误“类型不匹配:无法从列表转换为可选”
我的目标是:
如果 optional 存在,我想根据这个可选对象属性获取项目列表
如果 optional 不存在,我想返回空列表
scala - flatten 函数中使用的模式匹配中 List[_] 的解释
我是 scala 新手,我无法理解以下功能
特别是我不明白flatMap
和模式匹配的组合以及第一种情况的含义ms:List[_]
有人可以解释一下,也许可以提供一个更简单的例子来澄清这个概念吗?
java - Java 8 flatMap + Optional.of 无法编译
我正在尝试使用flatMap
Optional
Java。这是一个简化的示例:
我从编译器收到此错误消息:
怎么了?这是我在 Scala 中尝试实现的示例:
它返回:
正如预期的那样。
如何将其转换为 Java 以便编译?
scala - Scala Future, flatMap 适用于 Either
真的有办法将 Future[Either[Future[T1], Future[T2]]] 类型的对象转换为 Either[Future[T1], Future[T2]] 类型的对象吗?
也许类似 flatMap 的东西适用于 Either....
我正在尝试使此代码正常工作(我有类似的代码可以实现包装的动作链,但它不涉及未来。它可以工作,更简单)。下面的代码基于此,并进行了必要的修改以使其适用于涉及期货的情况。
更新更新更新
根据下面 Didier 的评论(Scala Future, flatMap that works on Either)......这是一个有效的代码:
谢谢,拉卡