找不到参数仿函数的隐式值:cats.Functor[Some]
could not find implicit value for parameter functor: cats.Functor[Some]
我正在尝试学习 scala with cats 电子书中的一个简单示例。这是我的代码
import cats.Semigroupal
import cats.instances.option._
import cats.syntax.apply._
import cats.implicits._
case class Name(fName: String, lName: String)
(Some("foo"), Some("bar")).mapN(Name.apply)
我收到错误消息
cmd4.sc:1: could not find implicit value for parameter functor: cats.Functor[Some]
val res4 = (Some("foo"), Some("bar")).mapN(Name.apply)
我也试过导入
cats.functor._
cats.syntax.functor._
问题在于 Functor 的类型参数是不变的,因此您需要让 Scala 编译器将元组的类型视为 (Option[String], Option[String])
而不是 (Some[String], Some[String])
。您可以使用
("foo".some, "bar".some).mapN(Name.apply)
我正在尝试学习 scala with cats 电子书中的一个简单示例。这是我的代码
import cats.Semigroupal
import cats.instances.option._
import cats.syntax.apply._
import cats.implicits._
case class Name(fName: String, lName: String)
(Some("foo"), Some("bar")).mapN(Name.apply)
我收到错误消息
cmd4.sc:1: could not find implicit value for parameter functor: cats.Functor[Some]
val res4 = (Some("foo"), Some("bar")).mapN(Name.apply)
我也试过导入
cats.functor._
cats.syntax.functor._
问题在于 Functor 的类型参数是不变的,因此您需要让 Scala 编译器将元组的类型视为 (Option[String], Option[String])
而不是 (Some[String], Some[String])
。您可以使用
("foo".some, "bar".some).mapN(Name.apply)