无法在cat库中调用map方法

fao*_*xis 5 scala scala-cats

我正在阅读高级Scala With Cats.我在函子描述(第59页)中坚持这个例子:

object FunctorsDemo extends App {

  import cats.instances.function._
  import cats.syntax.functor._

  val func1 = (x: Int) => x.toDouble
  val func2 = (y: Double) => y * 2

  val func3 = func1.map(func2) // wrong line for me

}
Run Code Online (Sandbox Code Playgroud)

在书中一切都很好,但我有这个例外:

Error:(10, 21) value map is not a member of Int => Double
  val func3 = func1.map(func2)
Run Code Online (Sandbox Code Playgroud)

无法理解我做错了什么.

Tom*_*Tom 2

您遇到了 Scala 类型推断中的一个错误,即部分统一错误。

将其添加到您的build.sbt

scalacOptions += "-Ypartial-unification"
Run Code Online (Sandbox Code Playgroud)

如果您感兴趣,这里有一篇很好的文章:https://gist.github.com/djspiewak/7a81a395c461fd3a09a6941d4cd040f2