Ich spiele schon seit einigen Jahren mit Haskell; Ich bin sehr zufrieden damit, wie Monaden funktionieren und wie sie verwendet werden und was die Operatoren (<<=)
und (>>=)
tun.
Aber ich weiß immer noch nicht, wie ich über sie reden soll! Gibt es einen Standardbegriff für das, was sie tun - für die Umwandlung eines Pfeils a -> m b
in einen Pfeil m a -> m b
?
(Als Mathematiker im Hintergrund kommt mir eine Option in den Sinn, "der vergessliche Funktor aus der Kleisli-Kategorie". Aber Haskell-Gurus müssen sicherlich einen prägnanteren Begriff haben, denn in Haskell wird diese Operation als eine der Bausteine von Monaden, anders als in der mathematischen Einstellung, wo es normalerweise als eine abgeleitete Operation betrachtet wird, definiert durch Multiplikation zusammen mit der Funktionalität!)
Der offizielle Name für >>=
ist bind. Wir können es auch als "Feed-Through", "Prozess-By", usw. lesen. Brian Benkman von MSDN's Channel 9 . nennt es "schieben" (nach rechts oder nach links).
Warum binden? In Analogie zu let
. So wie let
seine Variablen an die Ergebnisse der Auswertung der Anfangsausdrücke bindet, würde das "Monadische Let" seine Variablen an die Ergebnisse seiner Eingangsberechnungen "binden":