零的适用项

问题描述 投票:0回答:1

我只是在处理应用程序,遇到了要对可附加集合进行抽象的情况。我想出了以下类型类。

trait AppendableCollection[F[_]] {
  def empty[A]: F[A]
  def append[A](fa: F[A])(a: A): F[A]
}

object AppendableCollection {
  implicit val reversedListCollection = new Collection[List] {
    def empty[A] = Nil
    def append[A](fa: List[A])(a: A) = a :: fa
  }
}

看起来有点像可应用的零,但是我敢肯定,在猫或其生态系统中有类似的东西可用吗?

scala functional-programming scala-cats
1个回答
0
投票

提供pure(a: A): F[A],看起来类似于MonoidK

trait MonoidK[F[_]] {
  def empty[A]: F[A]
  def combineK[A](x: F[A], y: F[A]): F[A]
}

https://github.com/typelevel/cats/blob/master/core/src/main/scala/cats/MonoidK.scala#L25

© www.soinside.com 2019 - 2024. All rights reserved.