monad-transformers

___ answer4063700 ___

Es gibt zwei mögliche Lösungen. Dasjenige, das dem oben angegebenen Code am nächsten kommt, ist:

%Vor%

Das andere Formular verschiebt die Fehlerbehandlung innerhalb der Statusbehandlung:

%Vor%     
___ qstntxt ___

Ich muss eine Zustands-Monade schreiben, die auch die Fehlerbehandlung unterstützt. Ich dachte an die Verwendung der Entweder-Monade für diesen Zweck, weil es auch Details darüber geben kann, was den Fehler verursacht hat. Ich habe eine Definition für eine staatliche Monade gefunden, die die Maybe-Monade verwendet, aber ich bin nicht in der Lage, sie so zu modifizieren, dass sie entweder statt Maybe verwendet. Hier ist der Code:

%Vor%     
___ qstnhdr ___ Wie kann ich eine Zustands-Monade schreiben, die auch Fehler behandelt? ___ answer4063719 ___

Sie benötigen einen Monodentrafo. Monad-Transformer-Bibliotheken wie mtl ermöglichen es Ihnen, verschiedene Monaden zu erstellen, um eine neue Version zu erstellen. Mit mtl könnten Sie

definieren %Vor%

Damit können Sie sowohl auf den Status als auch auf die Fehlerbehandlung innerhalb Ihres %code% zugreifen.

    
___ tag123haskell ___ Haskell ist eine funktionale Programmiersprache mit starker statischer Typisierung, verzögerungsfreier Auswertung, umfangreicher Parallelitäts- und Parallelitätsunterstützung und einzigartigen Abstraktionsfunktionen. ___ answer4065405 ___

Verwenden Sie %code% von %code% (anstelle von Entweder).

%Vor%

Wenn Sie sich nicht mit Monaden und Monad-Transformatoren auskennen, dann würde ich das zuerst machen ! Sie sind eine große Hilfe und Programmierer Produktivität Leistung gewinnen.

    
___ tag123state ___ Ein Entwurfsmuster, das den Zustand eines Objekts darstellt. Einer der Verhaltensmuster der Gang of Four. ___ tag123monads ___ Eine Monade in der Programmierung ist eine zusammensetzbare Berechnungsbeschreibung. Monaden sind ein wichtiges Konstrukt in funktionalen Programmiersprachen wie Haskell. ___ tag123montransformers ___ Monad-Transformer sind eine Abstraktion für die Kombination von Monaden. Auf diese Weise können Sie verschiedene rechnerische Effekte zusammenstellen und präzise gesteuerte Computerumgebungen aufbauen. ___ answer4074198 ___

Ich habe niemanden hier gesehen, der das Papier Monad Transformers Step by Step von Martin Grabmüller

Ich fand es sehr hilfreich beim Lernen über die Kombination von Monaden.

    
___ answer4063726 ___

Sie können immer einen ErrorT-Monade-Transformer mit einer State-Monade verwenden (oder umgekehrt). Sehen Sie sich die Transformatoren von alles über Monaden an.

HTH,

    
___ tag123statemonad ___ Eine Monade, die es erlaubt, Zustandsinformationen an Berechnungen anzuhängen ___
3
Antworten

Einen Assembler in Haskell schreiben - mapM mit Zustand?

Ich schreibe einen sehr einfachen Assembler mit zwei Durchgängen in Haskell und ich bin auf ein Szenario gestoßen, das ich noch nicht zu lösen habe. Ich denke, die Lösung wird wahrscheinlich Monadetransformatoren beinhalten, die ich nicht wirkli...
18.11.2017, 23:20
1
Antwort

Monade-Transformer in C #

Ich arbeite an der Verwendung von Monad-Transformatoren in C #. Ich würde gerne wissen, ob der folgende Code, den ich präsentiere, zeigt, dass ich das verstanden habe. Ich bin ziemlich neu, also sind alle Rückmeldungen / Kommentare wirklich wi...
03.12.2013, 14:03
1
Antwort

Anatomie eines Monadentransformators

Ich versuche, Monade-Transformatoren zu lernen, basierend auf den Standard-Haskell-Bibliotheken (mtl? Transformatoren? nicht sicher, welche kam mit meinem Download der Haskell-Plattform - 7.4.1). Was ich glaube, ich habe bemerkt, ist eine gem...
28.11.2012, 16:19
1
Antwort

Warum brauchen wir Monade Transformers in Scala?

Mein Verständnis ist das Folgende: Angenommen, M1 und M2 sind Monaden, d.h. sie stellen die Funktionen unit und flatMap bereit, die den monadischen Gesetzen entsprechen. Leider können nicht unit und flatMap für M1[M2] e...
12.03.2014, 12:00
0
Antworten

Gibt es so etwas wie eine Fortsetzung Pfeil Transformator?

Die ContT Monade Transformator hat eine interessante Eigenschaft: Wenn es einen * -> * -Typ wie Set gibt, der gut definierte monadische Operationen hat, aber keine Monad Instanz haben kann, aufgrund einiger Einschränkungen (hier...
18.03.2017, 10:37
5
Antworten

Wie kann ich eine Zustands-Monade schreiben, die auch Fehler behandelt?

Ich muss eine Zustands-Monade schreiben, die auch die Fehlerbehandlung unterstützt. Ich dachte an die Verwendung der Entweder-Monade für diesen Zweck, weil es auch Details darüber geben kann, was den Fehler verursacht hat. Ich habe eine Definiti...
31.10.2010, 14:58