Zurück zur Übersicht

Begriff

Monad

Functional Programming Math S3
2 Quellen 0 Lernpfade 1 Backlink enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Der Endgegner der Informatik-Erklärungen. "Eine Monade ist ein Monoid in der Kategorie der Endofunktoren." (Vergiss den Satz). Stell dir die Monade als Bauplan für Arbeitsabläufe vor. Du hast Schritte A, B, C. Aber zwischen den Schritten kann was schiefgehen (NullPointerException, Fehler). Normalerweise hast du überall if (x != null). Eine Monade (wie Optional oder Promise) kapselt dieses "Was passiert dazwischen?". Sie ist ein Railway Track Switch. Wenn alles gut ist -> Weiter auf dem grünen Gleis. Wenn Fehler -> Abbiegen auf das rote Gleis (Abbruch). Du schreibst nur den Happy Path: getUser().flatMap(getAddress).flatMap(getCity). Die Monade kümmert sich um die Weichenstellung.

Merksatz: Ein Entwurfsmuster in der funktionalen Programmierung, das Werte mit einem Kontext (z. B. mögliche Fehler, Nebenwirkungen) umhüllt und es erlaubt, Funktionen zu verketten (flatMap), die diesen Kontext behandeln.


Quick-Check

  1. Ist jQuery eine Monade?
    Fast. $('.div').animate().css() verkettet Funktionen auf einem Wrapper. Sehr monadisch.
  2. Warum haben alle Angst davor?
    Weil Tutorials immer mit Burritos oder Raumschiffen erklären, statt mit Code. In der Praxis ist es einfach flatMap oder async/await.
  3. Was ist die "Do Notation"?
    Syntactic Sugar in Haskell (oder async/await in JS), damit Monaden-Ketten aussehen wie normaler imperativer Code.