Kleisli在Cats for Scala例子中不起作用

时间:2017-05-04 06:17:40

标签: scala scala-cats

我在Scala工作表中尝试following示例:

ListBox

然而,它没有键入检查,错误即时获取是在第2行和第3行。

  

类型Option [Int] dosent的表达符合预期类型F_ [B _]

1 个答案:

答案 0 :(得分:3)

它做了类型检查。您所看到的可能是您的IDE Scala编译器(我假设您在IDEA中看到这一点)无法推断出类型,但是如果您使用SBT或Scala REPL编译它,它有效:

scala> :pa
// Entering paste mode (ctrl-D to finish)

import cats._
import cats.data._
import cats.implicits._

val f = Kleisli { (x: Int) => (x + 1).some }

// Exiting paste mode, now interpreting.

import cats._
import cats.data._
import cats.implicits._
f: cats.data.Kleisli[Option,Int,Int] = Kleisli(<function1>)

在工作表中,您可以看到突出显示错误,但代码编译(IntelliJ 2017.1.2 Ultimate):

Klesli Scala Worksheet

我还在IntelliJ IDEA问题跟踪器中opened an issue