Sind alle Monaden Monoide?
Sind alle Monaden Monoide?

Video: Sind alle Monaden Monoide?

Video: Sind alle Monaden Monoide?
Video: Die Monadenlehre von Leibniz 2024, November
Anonim

Eine gut gesagte, vielleicht die kürzeste Antwort aller Zeiten ist: A Monade ist nur ein monoid in der Kategorie der Endofunktoren. Zufrieden mit dem monoid Axiome (i. & ii.), a Monade kann als angesehen werden monoid die zusammen mit zwei natürlichen Transformationen ein Endofunktor ist.

Was ist hierin ein Monaden-Endofunktor?

In der Kategorientheorie, einem Zweig der Mathematik, a Monade (auch Dreifach-, Dreier-, Standardbauweise und Grundbauweise) ist ein Endfunktion (ein Funktor, der eine Kategorie auf sich selbst abbildet), zusammen mit zwei natürlichen Transformationen, die erforderlich sind, um bestimmte Kohärenzbedingungen zu erfüllen.

Anschließend stellt sich die Frage, was ist ein Bifunktor? EIN bifunktor (auch als binärer Funktor bekannt) ist ein Funktor, dessen Domäne eine Produktkategorie ist. Er kann in zwei Argumenten als Funktor angesehen werden. Der Hom-Funktor ist ein natürliches Beispiel; es ist in einem Argument kontravariant, in dem anderen kovariant. Ein Multifunktor ist eine Verallgemeinerung des Funktorkonzepts auf n Variablen.

Was ist dann eine Monade in der Programmierung?

Aus Wikipedia: In Funktional Programmierung , ein Monade ist eine Art abstrakter Datentyp, der verwendet wird, um Berechnungen darzustellen (anstelle von Daten im Domänenmodell). Monaden Erlaube das Programmierer Aktionen zu verketten, um eine Pipeline zu erstellen, in der jede Aktion mit zusätzlichen Verarbeitungsregeln versehen ist, die von der. bereitgestellt werden Monade.

Was ist ein Monad Haskell?

In Haskell ein Monade wird als Typkonstruktor (nennen Sie es m) dargestellt, eine Funktion, die Werte dieses Typs erstellt (a -> ma) und eine Funktion, die Werte dieses Typs mit Berechnungen kombiniert, die Werte dieses Typs erzeugen, um eine neue Berechnung für zu erstellen Werte dieses Typs (ma -> (a -> mb) -> mb).

Empfohlen: