如何将值注入Monoid?

fho*_*fho 7 haskell

它只是在我看来,没有办法将单个值注入到Monoid中Data.Monoid.我Data.Monad.return对此犹豫不决,但希望找到类似singleton几种类型的东西.

aug*_*tss 15

Monoid类不允许任何形式注入的,因为独异是没有任何一种容器.一些容器是幺半群,然后它们将有自己的注射方式.对于相对一般的注射,您可以使用pureApplicative,或returnMonad(前者是更普遍).

  • @Florian:类型构造函数有这个"注入"操作,但不一定是`Applicative`,一个叫[`Pointed`](http://hackage.haskell.org/packages/archive/pointed/3.0.3/doc/html /Data-Pointed.html). (12认同)

Mat*_*hid 6

添加其他人所说的:Int形成一个幺半群(以几种不同的方式).你会如何"注入"一个价值Int?好吧,你没有; 一个Int只是一个Int.你可以使用零或什么......?

现在,如果某个东西一个容器,它会形成一个幺半群.但是monoid位不能帮助你将它当作一个容器; 你需要尝试别的东西.许多不是容器的东西形成幺半群.