gpt4 book ai didi

scala - Scala 中的 Monad 变形金刚

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

我一直在尝试简单的 Monad Transformers,其中我对涉及 M[F[A]] 的理解进行了尝试,其中 MF 是 monad .如果 S 是不同的单子(monad)?

例如:

val a: Future[List[Int]] = ...
val b: Future[Option[Int]] = ...

a 需要一个 ListT[Future, Int]b 需要一个 OptionT[Future, Int]但是这些不组成,我需要使用另一个变压器吗?这是否取决于我在 for comp 中使用它们的顺序?

最佳答案

Monad Transformers 帮助您组合两个 F[G[X]] 类型的值。

换句话说,monad 转换器与 F[G[X]] 一起工作,因为它们利用了这样一个事实,即如果 G[X] Monad[G] 存在。

现在,对于 F[G[X]F[H[X]],即使您声明 GH 都有 Monad 实例,但您仍然没有通用的方法来组合它们。

恐怕组合 F[G[X]]F[H[X]] 没有 monad 转换器的通用解决方案。

关于scala - Scala 中的 Monad 变形金刚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40503324/

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