如何将Scalaz的traverse和traverseU与Either一起使用

安托万

是否可以使用Scalaz'traversetraverseUwithEither代替Option

对于以下代码:

val list = List(1, 2, 3)

def f(i: Int): Either[Int, String] =
  if (i > 2) Left(i)
  else Right("must be lower than 3")

我想遍历list如果有一个或多个失败,或者一切正常f返回第Right(msg)一个Left(list)

加布里埃·彼得罗内拉

有没有你为什么不使用任何的理由Validation,并NonEmptyList通过scalaz?

您可以轻松地执行类似的操作

def f(i: Int) =
  if (i > 2) i.successNel
  else "something wrong".failureNel

List(1, 2, 3).traverseU(f) // Failure(NonEmptyList(something wrong, something wrong))
List(3, 4, 5).traverseU(f) // Success(List(3, 4, 5))

如果您想在第一个错误上失败,则可以使用\/,又称scalaz版本与相同Eitherscala.Either但右偏

def f(i: Int) =
  if (i > 2) \/-(i)
  else -\/("something wrong")

List(1, 2, 3).traverseU(f) // Failure(something wrong)
List(3, 4, 5).traverseU(f) // Success(List(3, 4, 5))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将`GridSpec()`和`subplots()`一起使用

来自分类Dev

Scalaz:如何将地图镜头与价值镜头组合在一起?

来自分类Dev

如何将一个UIStoryboard场景与UITableViewController和resultsTableViewController一起与UISearchController一起使用?

来自分类Dev

如何将Breeze与通用工作单元和存储库一起使用?

来自分类Dev

如何将sklearn CountVectorizer与'word'和'char'分析器一起使用?-蟒蛇

来自分类Dev

如何将SQLAlchemy与类属性(和属性)一起使用?

来自分类Dev

如何将sbt 0.12和0.13一起使用?

来自分类Dev

如何将Capybara与Cucumber-jvm和Java一起使用?

来自分类Dev

如何将XMLEncoder和XMLDecoder与String一起使用?

来自分类Dev

如何将Sum SQL和Spring Data JPA一起使用?

来自分类Dev

如何将Spring Boot与MySQL数据库和JPA一起使用?

来自分类Dev

如何将ng-repeat与filter和$ index一起使用?

来自分类Dev

如何将setTag和getTag与自定义适配器一起使用

来自分类Dev

如何将枚举与分组和子分组层次结构/嵌套一起使用

来自分类Dev

如何将onSaveInstanceState和onRestoreInstanceState方法与片段一起使用?

来自分类Dev

如何将模板与QT信号和插槽一起使用?

来自分类Dev

如何将ALSA dmix和多个插件一起使用?

来自分类Dev

如何将查询构建器与sum()列和groupBy一起使用

来自分类Dev

如何将vagrant和browsersync与本地域一起使用?

来自分类Dev

如何将AVX / SIMD与嵌套循环和+ =格式一起使用?

来自分类Dev

如何将lean()与猫鼬和蓝鸟一起使用?

来自分类Dev

如何将DB索引与Datatables和yajra / laravel-datatables一起使用

来自分类Dev

如何将ignore.case和endsWith一起使用?

来自分类Dev

如何将本地存储与apollo-client和reactjs一起使用?

来自分类Dev

如何将concat与lambda和ObservableSource一起使用

来自分类Dev

如何将maplist和[..] >>与接地变量一起使用?

来自分类Dev

如何将扩展和折叠列表行与核心数据元素一起使用?

来自分类Dev

如何将MultinomialNB与MultiOutputClassifier和partial_fit一起使用?

来自分类Dev

如何将Bootstrap 4边距和填充属性与像素一起使用?

Related 相关文章

  1. 1

    如何将`GridSpec()`和`subplots()`一起使用

  2. 2

    Scalaz:如何将地图镜头与价值镜头组合在一起?

  3. 3

    如何将一个UIStoryboard场景与UITableViewController和resultsTableViewController一起与UISearchController一起使用?

  4. 4

    如何将Breeze与通用工作单元和存储库一起使用?

  5. 5

    如何将sklearn CountVectorizer与'word'和'char'分析器一起使用?-蟒蛇

  6. 6

    如何将SQLAlchemy与类属性(和属性)一起使用?

  7. 7

    如何将sbt 0.12和0.13一起使用?

  8. 8

    如何将Capybara与Cucumber-jvm和Java一起使用?

  9. 9

    如何将XMLEncoder和XMLDecoder与String一起使用?

  10. 10

    如何将Sum SQL和Spring Data JPA一起使用?

  11. 11

    如何将Spring Boot与MySQL数据库和JPA一起使用?

  12. 12

    如何将ng-repeat与filter和$ index一起使用?

  13. 13

    如何将setTag和getTag与自定义适配器一起使用

  14. 14

    如何将枚举与分组和子分组层次结构/嵌套一起使用

  15. 15

    如何将onSaveInstanceState和onRestoreInstanceState方法与片段一起使用?

  16. 16

    如何将模板与QT信号和插槽一起使用?

  17. 17

    如何将ALSA dmix和多个插件一起使用?

  18. 18

    如何将查询构建器与sum()列和groupBy一起使用

  19. 19

    如何将vagrant和browsersync与本地域一起使用?

  20. 20

    如何将AVX / SIMD与嵌套循环和+ =格式一起使用?

  21. 21

    如何将lean()与猫鼬和蓝鸟一起使用?

  22. 22

    如何将DB索引与Datatables和yajra / laravel-datatables一起使用

  23. 23

    如何将ignore.case和endsWith一起使用?

  24. 24

    如何将本地存储与apollo-client和reactjs一起使用?

  25. 25

    如何将concat与lambda和ObservableSource一起使用

  26. 26

    如何将maplist和[..] >>与接地变量一起使用?

  27. 27

    如何将扩展和折叠列表行与核心数据元素一起使用?

  28. 28

    如何将MultinomialNB与MultiOutputClassifier和partial_fit一起使用?

  29. 29

    如何将Bootstrap 4边距和填充属性与像素一起使用?

热门标签

归档