- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 cats ,想知道如何用它来转数据:
val data = NonEmptyList[Either[Error, User]]
val target: Either[Error, NonEmptyList[User]] = howToConvert(data)
最佳答案
通常,当您想将类型构造函数翻过来时,您可能正在寻找 sequence
.如果您有 -Ypartial-unification
在 Scala >= 2.11.9 中打开,您可以让编译器推断出所有内容:
data.sequence
type EitherError[A] = Either[Error, A]
data.sequence[EitherError, User]
data.sequence[Either[Error, ?], User]
data.sequence[({type L[A] = Either[Error, A]})#L, User]
scala> import cats.data.NonEmptyList, cats.implicits._
import cats.data.NonEmptyList
import cats.implicits._
scala> val data: NonEmptyList[Either[Error, User]] = NonEmptyList.of(Right(2), Left("error1"), Right(4))
data: cats.data.NonEmptyList[Either[Error,User]] = NonEmptyList(Right(2), Left(error1), Right(4))
scala> data.sequence
res4: Either[Error,cats.data.NonEmptyList[User]] = Left(error1)
关于scala - 如何用猫将 `NonEmptyList[Either[Error, User]]` 转换为 `Either[Error, NonEmptyList[User]]`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48250365/
我正在使用 cats ,想知道如何用它来转数据: val data = NonEmptyList[Either[Error, User]] 到 val target: Either[Error, No
我正在尝试猫图书馆,但我很难在我应该导入和创建的东西之间导航。我的问题如下: sealed trait Checks case class CheckViolation(id: Long, msg:
标准库在List上提供了unzip方法: scala>val l = List((1, "one"), (2, "two"), (3, "three"), (4, "four"), (5, "five
在我看来,Scalaz' NonEmptyList有一个 monad 实例,所以它的 monad 转换器(有点类似于 ListT )应该是可能的。那是对的吗? 如果有,外面有吗? (我在 Scalaz
最近在研究cats库,遇到一个叫NonEmptyList的类. 读完api后,我不禁想知道是什么让cats作者创建了一个新类,而不是利用内置的东西( :: )并使用类型类来扩展它。连cats gith
我有一个 NonEmptyList实例,我想(按顺序)找到与谓词匹配的第一个元素。使用 Scalas List我可以做 myList.find(predicate) , 然而 Scalaz NonEm
我想将案例类与 scalaz 进行比较 NonEmptyList场。 ==或 euqls不起作用,我知道这是因为 NonEmptyList.equals检查比较对象是否与调用者相同的实例的方法。另一方
我是一名优秀的程序员,十分优秀!