到目前为止,我发现的每个资源都比较了map和flatMap。
那不是我的意图。
在这个关于 javascript 函数式编程的 YouTube 视频中(特别是 12:27 左右),演讲者展示了一个在函子上进行fmap
ing的示例。Maybe
到目前为止一切都很好。让我感到困惑的是mjoin
,而演讲者关于如何flatMap
(不是fmap
)的评论只是fmap
和的组合mjoin
。
这让我感到困惑,因为到目前为止我一直在使用这些名称fmap
并且flatMap
可以互换,尽管这次谈话暗示它们不是同一个东西。
对于一个具体的问题,我想知道在函数式编程的上下文中这是否是特定于实现的,或者fmap
实际上flatMap
是两个不同的东西?如果它们不同,如果它不是平坦的,那么f
in代表什么?fmap
它在我的脑海中仍然很模糊,但首先想到的是flatMap
它将映射到一个函子,产生嵌套的函子,然后将其展平为一个函子(或至少一个级别)。相反,fmap
的函数参数将返回单个函子,不需要展平。
也许我很近,或者很远。FP 世界中的任何人都关心阐明一些问题吗?
上面提到的视频。
https://www.youtube.com/watch?v=AvgwKjTPMmM
编辑
如果它们不同,是否f
转换fmap
为仿函数映射?
最佳的揣测。
尽管函子实现了映射,但从技术上讲,每个函子都map
在作用于某种类型的函子。
请。清除。朦胧。脑。