2016-04-25 16 views

Antwort

12

Applicative bietet die pure Methode, die eine Möglichkeit ist, "hineinzukommen". Ansonsten, auch wenn Sie F[A] zu F[B], entweder mit A => B (via map) oder F[A => B] (via ap) umwandeln könnte, Sie haben nicht die Fähigkeit, alles innerhalb eines F zu setzen. Sie dürfen also nur zulassen, dass andere es für Sie tun.

Der Unterschied Applicative ist, dass Sie Dinge in setzen, aus dem Nichts.

Da entweder kann nützlich sein („Sie sind befugt, Dinge in eine F zu setzen“ und „nein, halten Sie Ihre Hände weg, und arbeiten auf, was Sie gegeben“), Applicative und Apply sind separate typeclasses.

+0

Vielen Dank. Ich denke ich habe es. Könnten Sie ein Beispiel für die Verwendung von "Apply" geben, das nicht "Applicative" ist (wie in "Halten Sie Ihre Hände weg und operieren Sie mit dem, was Ihnen gegeben wurde")? – Michael

+0

Sie können sich alle möglichen Fälle vorstellen. Wenn Sie beispielsweise einen Fehlertyp hatten, den Sie verarbeiten wollten, aber nicht möchten, dass neue Fehler generiert werden oder Informationen verwendet werden können, die nicht aus einem Fehlerkontext stammen, könnte der Fehlertyp gewünscht sein eine 'Apply'-Klasse, aber keine' Applicative'. –