我认为这应该很简单:
import spire.math.Rational
val seq = Vector(Rational(1, 4), Rational(3, 4))
val sum = seq.sum // missing: scala.Numeric
val prod = seq.product // missing: scala.Numeric
我想这只是将正确的内容带入隐式范围的问题。但是我要导入什么?
我可以看到,为了获得
RationalIsNumeric
,我必须执行以下操作:import spire.math.Numeric._
implicit val err = new ApproximationContext(Rational(1, 192))
implicit val num = RationalIsNumeric
但这只是给我一个
spire.math.Numeric
。因此,我尝试使用以下方法:import spire.math.compat._
但是没有运气...
最佳答案
所需要的只是spire.math.compat.numeric[Rational]
的证据:
import spire.math._
val seq = Vector(Rational(1, 4), Rational(3, 4))
implicit val num = compat.numeric[Rational] // !
seq.sum // --> 1/1
seq.product // --> 3/16
关于scala - Spire的有理数之和或乘积(如何获得scala.Numeric),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16397160/