Was ist die Definition von Applicative Functor aus der Kategorietheorie POV?
Ich konnte die Definition von Functor aus der Kategorietheorie wie folgt auf die Definition von Haskell abbilden: since objects ofHask
sind Typen, der FunktorF
a
vonHask
zum neuen TypF a
indem Sie grob gesagt "F" voranstellen.maps jeden Morphismusa -> b
vonHask
zum neuen MorphismusF a -> F b
usingfmap :: (a -> b) -> (f a -> f b)
.So weit, ist es gut. Jetzt komme ich zumApplicative
, und kann ein solches Konzept in Lehrbüchern nicht erwähnen. Durch einen Blick auf das, was es zu @ hinzufüFunctor
, ap :: f (a -> b) -> f a -> f b
, Ich habe versucht, eine eigene Definition zu finden.
Zunächst ist mir aufgefallen, dass seit(->)
ist auch ein Typ, Morphismen vonHask
sind auch Objekte davon. In Anbetracht dessen machte ich den Vorschlag, dass der anwendbare Funktor ein Funktor ist, der auch "Pfeil" -Objekte der Quellkategorie in Morphismen des Ziels abbilden kann.
Ist das eine richtige Intuition? Können Sie eine formellere und strengere Definition geben?