category-theory

___ 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. ___ tag123continuations ___ In der Informatik und Programmierung ist eine Fortsetzung eine abstrakte Darstellung des Kontrollzustandes. Eine Fortsetzung bestätigt eine Instanz eines Berechnungsprozesses an einem gegebenen Punkt der Prozessausführung. Es enthält Informationen wie den aktuellen Stapel des Prozesses (einschließlich aller Daten, deren Lebensdauer innerhalb des Prozesses liegt, beispielsweise "lokale Variablen") sowie den Punkt des Prozesses bei der Berechnung. ___ tag123arrows ___ Pfeile sind ein Mittel zur Modellierung von Recheneffekten, die allgemeiner und weniger leistungsfähig als Monaden sind. ___ qstnhdr ___ Gibt es so etwas wie eine Fortsetzung Pfeil Transformator? ___ tag123haskell ___ Haskell ist eine funktionale Programmiersprache mit starker statischer Typisierung, verzögerungsfreier Auswertung, umfangreicher Parallelitäts- und Parallelitätsunterstützung und einzigartigen Abstraktionsfunktionen. ___ qstntxt ___

Die %code% Monade Transformator hat eine interessante Eigenschaft: Wenn es einen %code% -Typ wie %code% gibt, der gut definierte monadische Operationen hat, aber keine %code% Instanz haben kann, aufgrund einiger Einschränkungen (hier %code% ), ist es das Es ist möglich, sie in %code% ( %code% ) zu verpacken, um eine Monad-Instanz zu erhalten, und die Abhängigkeiten außerhalb davon zu verschieben, wie wenn wir %code% in %code% injizieren. Siehe Erstellen effizienter monad Instanzen auf %code% mit der Continuation Monade .

Gibt es etwas Ähnliches für Pfeile? Ein Pfeiltransformer , der das erlauben würde wrap einen "fast arrow" hinein, eine gültige %code% -Instanz bekommen, und problematische Einschränkungen auf den Teil, wo wir den "fast Pfeil" hinein injizieren ?, verschieben.

Zum Beispiel, wenn wir den Typ %code% hätten, für den wir die üblichen Operationen %code% hätten, aber mit Einschränkungen wie

%Vor%

Als Bonus, wenn ja, gibt es eine raffinierte, generische, kategorientheoretische Methode, wie man sowohl %code% als auch einen solchen Pfeiltransformer ableitet?

    
___ tag123kategorietheorie ___ * Kategorientheorie * ist ein Zweig der abstrakten Mathematik, der sich mit der Darstellung und Beschreibung der zugrunde liegenden Struktur logischer und mathematischer Systeme befaßt. Konzepte der Kategorientheorie haben sich als Werkzeuge zur Strukturierung der Semantik von Programmiersprachen und Programmen selbst als äußerst effektiv erwiesen. Verschiedene kategorientheoretische Strukturen werden als Werkzeuge für die Abstraktion in der Programmierung verwendet, einschließlich Funktoren, Monaden und Algebren. ___
1
Antwort

Welche Begriffe entsprechen Map, Filter, Foldable, Bind etc. aus der Category Theory?

Ich wurde interessiert und fand nicht an einer Stelle eine Liste entsprechender Begriffe: Map <-> Morphism Foldable <-> Catamorphism ... Wer kann die Liste der Begriffe ergänzen?     
20.07.2017, 11:26
1
Antwort

Warum gibt es in Haskell keine einfache Syntax für Koproduktypen?

Produkttypen in Haskell sind leicht definierbar: %Vor% ist ein Produkt zweier Arten. Das Nebenprodukt zweier Typen ist %Vor% Aber während das Produkt leicht auf drei oder mehr Typen erweiterbar ist, erscheint es für Koprodukte nicht so e...
10.01.2013, 02:34
4
Antworten

Erste Algebra für Rosenbäume

Soweit ich weiß, entsprechen rekursive Datentypen von Haskell den ursprünglichen Algebren von Endofunctors aus der Kategorie Hask [ 1 , 2 ]. Zum Beispiel: Natürliche Zahlen, data Nat = Zero | Succ Nat , entsprechen der ursprünglichen A...
26.08.2017, 23:02
3
Antworten

Das Anzeigen von 'newtype T a = T (a - Int)' ist ein Typenkonstruktor, der kein Functor ist

Es wurde behauptet, dass newtype T a = T (a -> Int) ein Typkonstruktor ist, der kein Funktor ist (aber ein kontravarianter Funktor). Wie das? Oder was ist der kontravariante Funktor (woher nehme ich an, dass es offensichtlich ist, warum di...
22.05.2017, 02:24
3
Antworten

Scala - Wie benutzt man Funktoren für Nicht-Funktionstypen?

Beim Lesen der Beschreibung von Functors in diesem Blog: Ссылка Es gibt eine generische Definition von Functor und eine spezifischere: %Vor% Offensichtlich bedeutet dies, dass Funktoren mit anderen höherwertigen Typen neben Funktions...
27.09.2011, 15:46
1
Antwort

Beweisen die Funktorgesetze die vollständige Erhaltung der Struktur?

In der Dokumentation für Data.Functor werden die folgenden zwei als Funktor angegeben Gesetze, an die sich alle Funktoren halten sollten. %Vor% Wie meine Intuition mir sagt, dass Funktoren funktionieren sollten, ist, dass sie "strukturer...
15.05.2014, 10:19
1
Antwort

Sind Haskell-Datentypen standardmäßig Co-Algebren?

Ich versuche, meinen Kopf um F-Algebren zu bekommen, und dieser Artikel macht einen hübschen Eindruck Gut gemacht. Ich verstehe die Vorstellung einer dualen Kategorientheorie, aber es fällt mir schwer zu verstehen, wie F-Coalgebras (das Duale...
21.07.2014, 15:58
1
Antwort

Definition von hissenfrei

Ich habe einige Fragen bezüglich der Funktion hiistfree aus der Haskell Bibliothek Control.Monad.Free . Bei einer Transformation f zwischen zwei Funktonen erzeugt hoistfree f einen Morphismus zwischen den entsprechenden freien Monaden. Hier...
14.09.2016, 17:01
2
Antworten

Fords in höherer Ordnung in scala

Also habe ich versucht, meine Intuitionen von Funktoren an ihre Grenzen zu bringen, indem ich einen Funktor höherer Ordnung definiert habe, also F, der Typen erster Ordnung als Typargument akzeptiert und Funktionen auf Typen 1. Ordnung in diesen...
10.05.2014, 05:28
1
Antwort

Name für einen Typkonstruktor, der sowohl eine Kategorie als auch eine Monade ist?

Gibt es einen Standardnamen für einen Typkonstruktor F :: * -> * -> * -> * mit Operationen ? %Vor% das ist ein kontravarianter Funktor im ersten Argument und ein kovarianter Funktor im zweiten und dritten? Entspricht dies insbeson...
21.02.2018, 08:59