die Äquivalenz zwischen applikativem Funktor und Monade

Die Leute sagen, Monaden sind eine Erweiterung der anwendbaren Funktoren, aber das sehe ich nicht. Nehmen wir ein Beispiel für einen anwendbaren Funktor:(<*>) :: f(a->b) -> f a -> f b

[(+3)] <*> [2,3,4]

Jetzt erwarte ich auch, dass ich das Gleiche tun kann wie monad. Das bedeutet, dass ich zwei Parameter anwenden kann: Ein Kontext enthält eine Funktion und ein anderer Kontext, um einen Kontext zu erhalten. Aber für Monaden kann ich nicht. Alles was ich brauche ist eine hässliche Funktion wie diese zu schreiben:

[2,3,4] >>= (\x->[x+3])

Ja, das kann man natürlich sagen[(+3)] ist äquivalent zu[\x->(x+3)]. Aber zumindest steht diese Funktion im Zusammenhang.

Schließlich sehe ich hier keine Entsprechung oder Erweiterung. Monade ist ein anderer Stil und nützlich in einer anderen Geschichte.

Entschuldigung für meine Unwissenheit.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage