Ich habe die Katzendokumentation über typeclasses Apply
und Applicative
gelesen. Ich frage mich, warum die Bibliothek zwei separate Typklassen statt nur einer Typklasse Applicative
bietet, die Functor
erweitern und ap
hinzufügen würde? Benutzt jemand Apply
, das nicht Applicative
ist?
Applicative
liefert die pure
-Methode, die ein Weg zum "Einstieg" ist. Wenn Sie <%>% F[A]
in F[B]
konvertieren konnten, entweder mit A => B
(über map
) oder F[A => B]
(über ap
), haben Sie andernfalls nicht die Kapazität etwas in eine F
einfügen. Du bist also darauf beschränkt, dass andere es für dich tun.
Der Unterschied zu Applicative
besteht darin, dass Sie Dinge einfügen können, indem Sie von nichts ausgehen.
Da beide nützlich sein können ("Sie sind befugt, Dinge in ein F
zu legen" und "nein, halten Sie Ihre Hände weg und operieren Sie mit dem, was Ihnen gegeben wurde"), sind Applicative
und Apply
separate typeclasses.
Tags und Links scala applicative scala-cats