Seit der Arbeit von Eugenio Moggi gab es eine Reihe von Entwicklungen in Bezug auf die Verwendung von Monaden in der Berechnungstheorie. Ich bin nicht in der Lage, einen umfassenden Bericht zu geben, aber hier sind einige Punkte, mit denen ich vertraut bin, andere können mit ihren Antworten übereinstimmen.
Spezifische Beispiele für Monaden
Sie müssen nicht die ganze Zeit über allgemeine Theorie studieren. Es gibt Beispiele für Monaden, die sehr interessant und kompliziert genug sind, um eine ganze Diplomarbeit zu füllen.
Ich mag Dan Piponis Blog sehr, in dem er erstaunliche Beispiele dafür gibt, wie Monaden verwendet werden können, um funktionale Programmierung und Mathematik zu mischen. Suchen Sie zum Beispiel nach seinen Arbeiten über Knoten und Geflechte durch Monaden.
Ein weiteres konkretes Beispiel für Mondas wert studierte von Martin Escardo und Paulo Oliva im Zusammenhang mit der Auswahl Funktionalen gegeben, sehen ihre Auswahlfunktionen, Bar Rekursion und Rückwärtsinduktion , oder vielleicht zu interessieren, zuerst lesen Was Sequential Spiele, die Tychonoff Theorem und die Double-Negation-Shift haben Gemeinsamkeiten (zugehörige Haskell- und Agda-Dateien hier ).
Mathematischer Hintergrund
Monaden stammen aus der Kategorietheorie und sind viel älter als Eugenio Moggi. Sie könnten die Hintergrundtheorie studieren, wenn Sie mathematisch veranlagt sind. Sie könnten beispielsweise Becks Monadizitätssatz angreifen . Ein theoretischer Informatiker kann nie zu viel Mathe wissen.
Variationen über ein Thema
Sie könnten sich etwas ansehen, das nicht nur Monaden sind.
Zum Beispiel die Idiome von Connor McBride und Ross Paterson : Die anwendungsorientierte Programmierung mit Effekten zeigt, wie man Monaden zu etwas verallgemeinern kann, das praktisch relevant und aufschlussreich ist.
Oder sehen Sie sich an, wie Comonaden zur Modellierung von Recheneffekten verwendet werden. Jemand sollte einige Referenzen für dieses Thema vorschlagen, aber ein guter Anfang könnten die Folien von David Overtone sein .
Theorie des Modaltyps
Sowohl in der Homotopietypentheorie als auch in der Typentheorie im Allgemeinen treten Monaden in Form der Modaltypentheorie auf . In letzter Zeit wurde die Modaltypentheorie in der Homotopietheorie berücksichtigt, da die Trunkierungsoperatoren Beispiele für Modaloperatoren sind. Und dann gibt es eine kohäsive Homotopietheorie, in der Modaloperatoren (die Monaden sind) eine wesentliche Rolle spielen.
Algebraische Effekte und Handler
[Haftungsausschluss: Ich habe hier teilweise mein eigenes Horn geblasen.]
Vor einiger Zeit stellten Gordon Plotkin und John Power fest, dass es sich bei vielen Recheneffekten nicht nur um Monaden handelt, sondern um spezielle Monaden, die sich aus algebraischen Theorien ergeben. Dies führte zu einer völlig neuen Behandlung von Recheneffekten, die als algebraische Effekte bezeichnet werden . Später stellten Gordon Plotkin und Matija Pretnar Handler vor und bilden zusammen mit algebraischen Effekten eine sehr schöne Theorie der rechnerischen Effekte. Ein Vorteil dieses Ansatzes ist, dass algebraische Theorien leicht kombiniert werden können, während Monaden dies nicht können.
Sie könnten untersuchen, wie genau sich algebraische Effekte auf Monaden auswirken. Sie können sich ansehen, wie Benutzer algebraische Effekte und Handler implementiert haben, beispielsweise in der Eff-Sprache oder in Haskell als Bibliothek . Dies ist mehr oder weniger aktuelle Forschung.