Was ist ein Monad?
Ein Monad ist ein monoid in der Kategorie von endofunkors ...?
... lass es uns noch einmal versuchen:
Eine Monate ist eine Abstraktion, die in der funktionalen Programmierung verwendet wird, um Berechnungen konsistent zu verarbeiten. Es ist ein Entwurfsmuster, das das Erhalten von Operationen bei gleichzeitiger Einkapselung von Nebenwirkungen wie Zustandsänderungen, E/O oder Fehler auf kontrollierte Weise ermöglicht.
.monaden können als eine Möglichkeit angesehen werden, Werte zu wickeln und Funktionen auf sie anzuwenden, um sicherzustellen, dass Berechnungen in einer vorhersehbaren und kontrollierten Umgebung durchgeführt werden.
Mein persönliches Verständnis ist: Eine Monate ist eine Datenstruktur mit
Dies ermöglicht die Erhöhung und Zusammensetzung von Operationen auf eine Weise, die Unveränderlichkeit und funktionale Reinheit bewahrt-ein "umgekehrter" Ansatz für eine Klasse, bei dem der Zustand nicht an Platz geändert werden kann, aber Transformationen funktional angewendet werden, um neue Instanzen zu erzeugen.
.
Diese "reverse Symmetrie" hebt den Kontrast hervor:Klassen ändern ihren internen Zustand, die Veränderbarkeit und direkte Interaktion durch interne Methoden beibehalten. Sie interagieren die meiste Zeit mit einem globalen Zustand
monaden erreichen ähnliche Ergebnisse wie eine Klasse, aber indem sie Werte einwickeln und externe unveränderliche Transformationen abgeben, haben sie keine Nebenwirkungen: Es gibt keinen globalen Zustand
Beispiel:
Beispielprojekt in Python:
In dieser Anwendung verwenden wir den staatlichen Monad, um den Status der Aufgabenliste zu verwalten. Die staatliche Monad bietet eine Möglichkeit, den Aufgabenmanagementprozess als eine Reihe von Transformationen in den Zustand der Anwendung zu modellieren und gleichzeitig den Staat selbst unveränderlich zu halten.
Anstatt den Status der Aufgabenliste direkt zu ändern, verwenden wir die Funktion return_, um den Ausgangszustand in einen monadischen Container zu wickeln, und die Bindungsfunktion, um Transformationen auf vorhersehbare Weise auf den Zustand anzuwenden. Jedes Mal, wenn eine Operation ausgeführt wird (z. B. Hinzufügen, Bearbeiten oder Löschen von Aufgaben), wird eine neue Instanz des Staates zurückgegeben, wodurch die Unveränderlichkeit und Zwangsfähigkeit gewährleistet werden.
Schlüsselfunktionen:
Durch die Verwendung des staatlichen Monades können wir Aufgabenverwaltungsvorgänge so behandeln, dass der Staat immutnungsgemäß aktualisiert wird und Berechnungen ohne Nebenwirkungen oder unerwünschte Interaktionen zwischen Operationen komponiert werden.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3