gpt4 book ai didi

scala - 在 Scala 中将不同 monad 与 for 组合的惯用方式

转载 作者:行者123 更新时间:2023-12-03 03:31:06 25 4
gpt4 key购买 nike

假设我们有两个值包装在不同的 monad 中(例如 Try 和 Option):

val x: Option[Int] = Some(10)
val y: Try[Int] = Success(4)

我们想要得到这些值的总和。有人会写

val z = for {
xval <- x
yval <- y
} yield xval + yval

但由于类型错误而无法编译。有没有惯用的 Scala 方法来处理这个问题?

最佳答案

Scala 标准库缺少一些有用的函数/抽象,但幸运的是,有一个名为 Scalaz 的补充库,它提供了您所需的大部分功能。

特别是,正如所建议的,您正在寻找 Monad 变压器。请参阅以下两篇文章:

http://eed3si9n.com/learning-scalaz/Monad+transformers.html

http://underscoreconsulting.com/blog/posts/2013/12/20/scalaz-monad-transformers.html

关于scala - 在 Scala 中将不同 monad 与 for 组合的惯用方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25941513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com