monad是一张地图而不是flatMap还是monad吗?

时间:2014-12-27 19:01:41

标签: monads

我没有一种与语言无关的方式来表达问题,但 monad 的官方™定义表明绑定操作采用了一个本身返回monad实例的函数。

然而,在现实世界中,我拥有“monad”的所有方便示例,绑定函数返回基础类型的值,monad然后将其包装。

差异是(如果我没有完全丢失)与Scala集合中flatMap()map()之间的差异相同。

我找到的消息来源

  1. map()flatMap()的可接受的简写。
  2. 如果它没有真正的flatMap(),则它不是monad。
  3. 如果它有map(),则为延续
  4. 显然,我需要一个权威的答案。

    顺便说一句,如果它是(1),monad的世界是巨大的 - 几乎每种语言的每个容器类都有。如果是(2),那么我见过的所有单子都是故意单子。

0 个答案:

没有答案