我似乎无法用猫"org.typelevel" %% "cats-core" % "1.0.0-MF"
编译它,这对"org.typelevel" %% "cats-core" % "0.9.0",
来说很好。
import cats._
import cats.instances.all._
import cats.syntax.all._
val func1 = (x: Int) => x.toDouble
val func2 = (y: Double) => y * 2
val func3 = func1.map(func2)
func3(3)
错误是:
Error:(7, 25) value map is not a member of Int => Double
lazy val func3 = func1.map(func2)
^
答案 0 :(得分:2)
我认为你正在寻找的东西可能只是功能构成。你可以这样做:
val func3 = func1 andThen func2
或
val func3 = func2 compose func1
但是,如果要映射功能,则需要启用partial-unification
。
最简单的方法是添加sbt-partial-unification
plugin。
如果你使用的是Scala 2.11.9或更高版本,你也可以简单地添加编译器标志:
scalacOptions += "-Ypartial-unification"
使用其中任何一个编译都可以:
val func1 = (x: Int) => x.toDouble
val func2 = (y: Double) => y * 2
val func3 = func1.map(func2)