我要说一个非常谨慎的"可能".这很大程度上取决于您的定义.
值得注意的是,我从类别理论构造中获取monad的定义,而不是函数式编程构造.
如果你想到一个将一个实例映射到另一个实例A的类的方法(即它返回),那么这将是一个类似于自身实例化的类的仿函数.因此,它至少是一个endofunctor.看起来这种结构遵循我们期望的基本身份和相关性属性,但需要进一步检查才能确定.CCCthisC.A()C
无论如何,我不会把我的生命放在它上面,我不确定这是一个非常有用的思考这种结构的方法,但它至少在第一次检查时似乎是一个合理的假设.
小智 4
我对单子的理解有限。我无法判断这是否符合 monad 的正式定义(我不这么认为,但我不确定),但return this;单独不允许任何 monad 允许的很酷的事情(流体接口很好) ,但不是 monad,恕我直言,也没有像选项类型 monad 这样简单的 monad 那样有用)。
维基百科的这段代码似乎在说“不”:
形式上,一个 monad 是通过定义两个操作(绑定和返回)和一个类型构造函数 M 来构造的 [...我们在这里不需要进一步的限制]
编辑:此外,单子是一种类型而不是操作(例如方法) - 问题应该阅读“如果一个类的所有方法都返回,那么它是单子吗this?”</nitpick >