не удалось найти неявное значение для параметра functor: cats.Functor [Some] - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь следовать простому примеру из книги «Скала с кошками». вот мой код

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._

1 Ответ

0 голосов
/ 05 мая 2018

Проблема в том, что Functor инвариантен в аргументе типа, поэтому вам нужно заставить компилятор Scala обрабатывать тип кортежа как (Option[String], Option[String]) вместо (Some[String], Some[String]). Вы можете сделать это, используя

("foo".some, "bar".some).mapN(Name.apply)
...