algebraic-data-types

Algebraische Datentypen sind Datenstrukturen, die aus Summen, Produkten und rekursiven Typen aufgebaut sind und eine Algebra zulassen. Beschreibungen von Typen, die als ADTs angegeben sind, können symbolisch manipuliert werden, um andere verwandte Datenstrukturen abzuleiten. Die Logik für den algebraischen Aufbau von Typen bezieht sich auf kombinatorische Arten in der kombinatorischen Mathematik.
1
Antwort

Gleichheitsprüfung ohne expliziten Nachweis, dass Datenkonstruktoren injektiv sind

Ist es möglich, einen einfachen syntaktischen Begriff der Gleichheit zu definieren (ähnlich dem, was GHC automatisch als Eq -Instanz für einen Haskell 98-Typ ableitet), ohne entweder explizit jeden Datenkonstruktor nachzuweisen ist injektiv...
10.10.2014, 10:53
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
1
Antwort

Was ist der Zweck von algebraischen Datentypen ohne Konstruktor?

In Haskell können Sie einen algebraischen Datentyp ohne Konstruktor definieren: %Vor% Aber was ist der Zweck eines Typs (oder einer Sorte?), der keinen Konstruktor hat?     
25.10.2015, 22:28
1
Antwort

Nach der Vereinfachung in OCaml kann der Produkttyp nicht dekonstruiert werden

Ich habe diesen einfachen Code in OCaml: %Vor% Beim Testen meiner extract -Funktion scheint es zu funktionieren: %Vor% Ich vereinfache es, also braucht es nur einen Typ: %Vor% Aber ich bekomme den Fehler: %Vor% Das lustige ist...
01.04.2013, 21:58
1
Antwort

Probleme beim Verständnis von Haskells Typsystem

Ich versuche derzeit 20 Intermediate Haskell Exercises . Ich konnte mit den ersten 3 Übungen fertig werden (aber das liegt daran, dass furry == fmap und Learn You a Haskell hat diese Implementierungen bereits). Ich bin derzeit auf der I...
21.08.2012, 01:52
4
Antworten

Wie emulieren Sie ADTs und Mustervergleich in TypeScript?

Unglücklicherweise hat TypeScript (bis jetzt) ​​(noch) keine algebraischen Datentypen (Union-Typen) und Mustervergleiche (um sie zu destrukturieren). Außerdem unterstützt es nicht einmal instanceof auf Schnittstellen. Welches Muster verwenden Si...
10.01.2014, 00:24
4
Antworten

Erstellen Sie einen Datenkonstruktor für den teilweise angewandten Typ in Haskell

Ist es möglich, in Haskell einen Datenkonstruktor für den partiell angewendeten Typ zu erstellen? ghci-Sitzung: %Vor% Ich möchte Datenkonstruktor für den Typ T1 erstellen - ist das überhaupt möglich? Oder muss ich neue Typen verwenden, we...
23.07.2013, 17:54
3
Antworten

Simulieren von ADTs in Java

Eine Anwendung kann in zwei Modi arbeiten - "Echtzeit", in der jede Aktualisierung des Zustandes der Welt betrachtet wird, oder "abgetastet", wobei nur alle Millisekunden der Zustand der Welt betrachtet wird. Wenn ich Haskell (oder eine ander...
15.07.2015, 11:14
2
Antworten

Haskell-Datentyp Aliasnamen

Ich habe ein mathematisches Vector Modul in Haskell geschrieben. Also begann ich mit: %Vor% Fein - damit kann ich jeden beliebigen numerischen Datentyp verwenden. Das Problem ist, dass ich nicht überall Double und Vector Double s...
08.07.2012, 05:00
3
Antworten

Typsichere diskriminierte Vereinigungen in C # oder: Wie kann die Anzahl der Implementierungen einer Schnittstelle begrenzt werden?

Zuerst, Entschuldigung für die lange Post. Grundsätzlich ist meine Frage: Ich versuche, den folgenden F # diskriminierten Vereinigungstyp in C # zu reproduzieren: %Vor% Kann jemand eine einfachere schnittstellenbasierte Lösung vorschlag...
12.03.2011, 14:04