7

在我看来,没有办法将单个值注入到 Monoid in 中Data.Monoid。我犹豫要不要使用Data.Monad.return它,但希望能找到singleton几种类型的东西。

4

2 回答 2

15

该类Monoid不允许任何类型的注入,因为 monoid 不是任何类型的容器。有些容器是幺半群,然后它们会有自己的注入方式。对于相对通用的注入,您可以使用purefromApplicativereturnfrom Monad(前者更通用)。

于 2013-07-01T09:59:23.840 回答
6

添加到其他人所说的:Int形成一个幺半群(以几种不同的方式)。您将如何将值“注入”到 中Int?好吧,你不知道;anInt只是一个Int. 你也许可以使用零或其他东西......?

现在,如果某物一个容器,它就会形成一个幺半群。但是幺半群位并不能帮助您将其视为容器;您需要为此尝试其他方法。许多不是容器的东西形成了幺半群。

于 2013-07-02T07:49:44.397 回答