在我看来,没有办法将单个值注入到 Monoid in 中Data.Monoid
。我犹豫要不要使用Data.Monad.return
它,但希望能找到singleton
几种类型的东西。
问问题
349 次
2 回答
15
该类Monoid
不允许任何类型的注入,因为 monoid 不是任何类型的容器。有些容器是幺半群,然后它们会有自己的注入方式。对于相对通用的注入,您可以使用pure
fromApplicative
或return
from Monad
(前者更通用)。
于 2013-07-01T09:59:23.840 回答
6
添加到其他人所说的:Int
形成一个幺半群(以几种不同的方式)。您将如何将值“注入”到 中Int
?好吧,你不知道;anInt
只是一个Int
. 你也许可以使用零或其他东西......?
现在,如果某物是一个容器,它就会形成一个幺半群。但是幺半群位并不能帮助您将其视为容器;您需要为此尝试其他方法。许多不是容器的东西形成了幺半群。
于 2013-07-02T07:49:44.397 回答