让这项工作缺少什么?
import scalaz._
import Scalaz._
val r = Some(1.0) |+| None
val r1 = None[Double] |+| Some(1.0)
我得到以下内容:
错误:(4,25)值| + |不是某些[Double] lazy val r =的成员 一些(1.0)| + |无
^
答案 0 :(得分:4)
问题是Monoid
超过Double
是不合法的,因为在某些情况下,通过浮点算术近似可以使关联性规则无效。出于这个原因,scalaz将该实例从主项目中删除,并将其包含在scalaz-outlaws中。
如果您需要Double
的实例,请包含该库,但请记住这是有原因并考虑您的用例(例如,如果您使用浮点算法处理货币交易,您可能正在做某事错)。