ApplicativePlus
Формальное определение
ApplicativePlus
- это моноидальный аппликативный функтор,
Applicative
комбинированный с PlusEmpty
.
ApplicativePlus
должен удовлетворять законам своих родителей.
Определение в виде кода на Scala
trait ApplicativePlus[F[_]] extends Applicative[F], PlusEmpty[F]
Примеры
Связанный список
given ApplicativePlus[List] with
override def unit[A](a: => A): List[A] = List(a)
override def apply[A, B](fab: List[A => B])(fa: List[A]): List[B] =
fab.flatMap { aToB => fa.map(aToB) }
override def plus[A](fa1: List[A], fa2: => List[A]): List[A] = fa1 ++ fa2
override def empty[A]: List[A] = List.empty[A]
Реализация
Реализация в ScalaZ
import scalaz.*
import Scalaz.*
// ... Все операции родителей
Ссылки: