Haskell monads: Wie lautet der Name für '(=)' und '(=)'?

8

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!)

    
PLL 22.12.2013, 14:36
quelle

1 Antwort

8

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":

%Vor% Dies ist, wie Sie sehen können, aus einer völlig nicht-mathematischen, praktischen Perspektive.

    
Will Ness 22.12.2013, 15:43
quelle

Tags und Links