使用案例类的折叠和空实例从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 (将#修改为@)