适用于零
Applicative with zero
我只是在处理应用程序,遇到了我想对可附加集合进行抽象的情况。我想出了以下类型 class.
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
}
}
它有点像带有零的应用程序,但我敢打赌在猫或其生态系统中有类似的东西吗?
假设有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
我只是在处理应用程序,遇到了我想对可附加集合进行抽象的情况。我想出了以下类型 class.
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
}
}
它有点像带有零的应用程序,但我敢打赌在猫或其生态系统中有类似的东西吗?
假设有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