typelevel的猫(0.9.0版本)的函子实例尝试为什么scala.util.Try在猫中有一个实例但不在scalaz中?
object catsTry {
import cats.Functor
import cats.instances.try_._
import scala.util.Try
val f = implicitly[Functor[Try]] //compile
}
虽然对在scalaz尝试(版本7.3.0-M12)无函子实例。
object scalazTry {
import scalaz._
import Scalaz._
import scala.util.Try
val f = implicitly[Functor[Try]] // won't compile
}
我想知道为什么scalaz没有提供Functor实例吗?
P.S.感谢Ren的评论。我试过这个案子https://issues.scala-lang.org/browse/SI-6284
@ Success(1) map { ((i:Int)=>numberOrDefault(i)) compose divideByZero }
res3: Try[Int] = Failure(java.lang.ArithmeticException:/by zero)
@ Success(1) map divideByZero map ((i:Int)=>numberOrDefault(i))
res4: Try[Int] = Failure(java.lang.ArithmeticException:/by zero)
它看起来像法律规定的。我错过了什么吗?
讨论https://github.com/typelevel/cats/pull/1059 – chenhry