有单调单子吗?

热卡洛夫(ZhekaKozlov)

函子可以是协变的,也可以是协变的。此协变/相反对偶性也可以应用于单子吗?

就像是:

class Monad m where
  return :: a -> m a
  (>>=) :: m a -> (a -> m b) -> m b    

class ContraMonad m where
  return :: a -> m a
  contrabind :: m a -> (b -> m a) -> m b

请问ContraMonad类有意义吗?有什么例子吗?

米格米特

好吧,当然可以定义它,但是我怀疑它会没有用。

有一种流行的说法是:“单子类仅仅是在类内分泌者中的类群。” 首先,它的意思是我们有一个endofunctors类别(意思是,从某种类别到其本身的(协变)函子),而且,我们对该endofunctors有一些乘积(在这种情况下为composite)。然后monad适应了一些我们现在不必担心的通用框架。关键是,没有互变函子的“乘法”。两个协变函子的组成又是协变函子;但是两个逆变函子的组成不是逆变函子(而是协变函子,因此是完全不同的野兽)。

因此,“反单子”并没有真正的意义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章