Monade (Kategorientheorie)
aus Wikipedia, der freien Enzyklopädie
Eine Monade ist im mathematischen Teilgebiet der Kategorientheorie eine Struktur, die gewisse formale Ähnlichkeit mit den Monoiden der Algebra aufweist.
Inhaltsverzeichnis |
[Bearbeiten] Definition
Eine Monade ist ein Tripel (T,η,μ) aus
- einem Funktor T von einer Kategorie K in sich selbst, d.h.
- einer natürlichen Transformation
(dabei steht 1K für den Identitätsfunktor
) - einer natürlichen Transformation
(dabei steht T2 für
),
so dass die folgenden Bedingungen erfüllt sind:
, d. h. das folgende Diagramm kommutiert:
, d. h. das folgende Diagramm kommutiert:
Explizit bedeutet die Kommutativität der Diagramme, dass für jedes Objekt X in K die beiden Diagramme
| und |
kommutieren. Die erste Bedingung ist analog zum Assoziativgesetz bei Monoiden, die zweite zur Existenz eines neutralen Elementes.
[Bearbeiten] Beispiele
[Bearbeiten] Adjungierte Funktoren
Ist ein Funktor
zu einem Funktor
linksadjungiert, und sind
bzw. 
Einheit bzw. Koeinheit der Adjunktion, so ist (T,η,μ) mit

also
für Objekte 
eine Monade.
[Bearbeiten] Listen
| Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. |
Ein Beispiel für eine Monade sind Listen. Wenn [x1,...,xn] die Liste mit den Elementen x1 bis xn bezeichnet, dann stellt das folgende Tripel (T,η,μ) eine Monade über der Kategorie der Mengen dar:
- Konstruktor für „Listen-Typen“:
- Funktor
(die Menge aller Listen, deren Elemente aus X kommen, für eine beliebige Menge X) - sowie für eine Abbildung
zwischen zwei Mengen die entsprechende Abbildung
zwischen den Listenmengen mit T(f)([x1,...,xn]) = [f(x1),...,f(xn)]
- Funktor
- Konstruktor für einelementige Listen: ηX(x) = [x]
- Konkatenation von Listen:
, also
- dies ist gewissermaßen das (einstufige) Flachklopfen einer Liste von Listen.
Die Aussage der Axiome lassen sich entsprechend auf das Listenbeispiel übertragen:
- Wird das Axiom μTμ = μμT auf das Beispiel angewandt, ergibt sich für eine Menge X zunächst
. Auf das Listenbeispiel übertragen ergibt sich für
auch μX(μT(X)(l)) = μX(T(μX)(l))), d.h. dass es bei mehrfach verschachtelten Listen egal ist, ob von innen oder von außen flachgeklopft wird, was bei Listen offensichtlich erfüllt ist. - Das zweite Axiom sagt in diesem Beispiel aus, dass es beim Hinzufügen einer Listenebene egal ist, ob dies innen oder außen passiert, sofern danach flachgeklopft wird - es ist μX(ηT(X)([x1,...,xn])) = μX([[x1,...,xn]]) = [x1,...,xn] = μX([[x1],...,[xn]]) = μX(T(ηX)([x1,...xn])).
Diese Monade gehört zu einem adjungierten Funktorpaar F,G (wie oben) zwischen den Kategorien der Mengen bzw. Halbgruppen. F ordnet einer Menge die freie Halbgruppe über dieser Menge zu, G einer Halbgruppe die zugrundeliegende Menge.
[Bearbeiten] Anwendung
Monaden werden u.a. in der Informatik in der funktionalen Programmierung verwendet, z.B. als Listen- oder IO-Monade in Haskell, siehe Monade (Typkonstruktion)
[Bearbeiten] Literatur
- Saunders Mac Lane, Categories for the Working Mathematician. Springer-Verlag, Berlin 1971. ISBN 3-540-90035-7


