到目前为止我找到的每个资源都会比较 map 和 flatMap 。
那是不是我的意图。
在这个关于javascript函数式编程的YouTube视频中(特别是12:27左右),发言者展示了fmap
Maybe
仿函数的示例。到目前为止一切顺利。让我感到困惑的是mjoin
以及发言人关于flatMap
(不是fmap
)仅仅是fmap
和mjoin
的组合的评论。
这让我感到困惑,因为到目前为止我已经互换地使用了fmap
和flatMap
这两个名字,虽然这个说法暗示它们不是一回事。
对于一个具体的问题,我想知道这是实现特定的,还是fmap
和flatMap
实际上是两个不同的东西,在函数式编程的上下文中?如果它们不同,f
中的fmap
如果不平整则代表什么?
它仍然模糊不清,但首先想到的是flatMap
将映射到一个仿函数,生成嵌套仿函数,然后将其展平为一个仿函数(或者至少一个级别) )。相反,fmap
的函数参数将返回单个仿函数,不需要展平。
也许我很接近或离开了。 FP世界中的任何人都在关心?
上述视频。
https://www.youtube.com/watch?v=AvgwKjTPMmM
如果它们不同,f
中的fmap
会转换为仿函数地图吗?
最好的猜测
虽然仿函数实现了map,但从技术上讲,每个map
都会对某种类型的仿函数起作用
请。明确。朦胧。脑。