Ich versuche, Monaden in Haskell herauszufinden, bin aber noch nicht zu weit gekommen.Unterschied zwischen Typkonstruktor und Rückkehrfunktion einer Monade (in Haskell)
Ich fand https://en.wikibooks.org/wiki/Haskell/Understanding_monads#cite_note-1 und mehrere andere Tutorials/Erklärungen, aber keiner scheint den Unterschied zwischen dem Typkonstruktor und der Rückkehrfunktion zu erklären.
Wie ich verstand der
- Typkonstruktor einen monadisch von einem gegebenen Wert des Basisdatentypen konstruiert. Es ist also ein normaler Konstruktor wie in Java, der aus dem gegebenen Parameter eine neue Instanz erstellt.
return
Funktion wendet den Typenkonstruktor auf den angegebenen Wert des Basisdatentyps an und gibt die konstruierte Monade zurück.
Also, was ist der Sinn von zwei Funktionen im Grunde die gleiche?
EDIT So das Beispiel eines Maybe-Monade unter Verwendung der
country = Just "China"
: (Konstruktor) erstellt die Monade für den Wert "China".return "China"
: gibt die Monade zurück, die dem Wert von China entspricht, also ist es im Grunde die Monade, die den Wert"China"
enthält.
Allgemein verstehe ich eine Monade als ein Container für Werte. Eine Verwendung von Monaden besteht darin, einfache/existierende Berechnungen mit komplexeren Berechnungen zu kombinieren.
Ich fürchte, es nicht wirklich verstehen, was Sie versuchen, scheint mir falsch zu fragen, und ich die wenigen Dinge verstand ... können Sie Machen Sie das vielleicht etwas konkreter? Lassen Sie uns über die 'Maybe'-Monade sprechen, um dies einfach zu machen -' Maybe' ist der Typkonstruktor, 'return = Just', also können Sie bitte Ihre Frage damit umformulieren? – Carsten
BTW: diese werden nie das gleiche tun - Sie können den Typ-Konstruktor als eine Funktion anzeigen, aber es ist eine Funktion auf der Ebene des Typs - 'return' wird einen Wert in die Monade – Carsten
wrap Ich weiß nicht, ob ich damit einverstanden bin das Duplikat ... es scheint ein anderes Problem mit dem Verständnis zu sein hier – Carsten