微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用案例类的折叠和空实例从List [IOAbstraction [List [A]]]]移至IO [Abstraction [List [A]]]

如何解决使用案例类的折叠和空实例从List [IOAbstraction [List [A]]]]移至IO [Abstraction [List [A]]]

首先,我将案例类定义为(这是库的一部分):

final case class Abstraction[A](
    result: Either[AbError,A],status: Int,info: Map[String,String]
)

我想将其用作折叠的主要组件,以便从List [IO [Abstraction [List [A]]]]转换为IO [Abstraction [List [A]]]。

当我阅读时,我想到将其作为Monoid的实例来定义合并最终结果的行为。

我的主张如下,但是我知道它有错误,因为我不太了解它。

implicit val instanceabstaction : Monoid[Abstraction[A]] = new Monoid[Abstraction[A]] = {

    def empty: Abstraction[A] = Abstraction(Either.empty[AbError,Map.empty[String,String])
    def combine(x: Abstraction[A],y: Abstraction[A]): Int = x ++ y
  }

如果还有其他方法可以实现这一点,那么我可以提出主张

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。