如何解决使用案例类的折叠和空实例从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 举报,一经查实,本站将立刻删除。