J'aimerais pouvoir utiliser le |@| de scalaz sur mon propre foncteur applicatif.
Exemple :val spread: Source[Yield] = (y2 |@| y1)(_ - _)
C'est ma classe
sealed abstract class Source[+A] {
def map[B](f: A => B): Source[B]
def unit[A](a: A): Source[A]
def pureList[A](la: List[A]): Source[A]
def zero[A]: Source[A]
def map2[A, B, C](as: Source[A], bs: Source[B], f: (A, B) => C): Source[C]
}
Je suis certain que je dois mettre en œuvre map
parce que c'est un foncteur.
Un applicatif peut être mis en œuvre de différentes manières : par exemple en utilisant apply()
y unit()
o map2()
y unit()
.
Est-ce que j'ai besoin ap
y pure
également ?
Comme vous pouvez le voir, je ne suis pas sûr de ce qui est nécessaire.