Algebraischer Datentyp
# Algebraischer Datentyp

In der Informatik, besonders in der funktionalen Programmierung und hier insbesondere in Haskell und der Typentheorie bezeichnet ein algebraischer Datentyp einen zusammengesetzten Datentypen.

## Produkttyp

Ein Produkttyp setzt sich in einer festen Reihenfolge aus Feldern anderer (Basis-)typen zusammen. Er entspricht in der Mengenlehre dem direkten Produkt. Die Umsetzung geschieht als Verbund (Datentyp).

## Summentyp

Der Summentyp ist das Analogon der direkten Summe in der Typentheorie und wird A + B geschrieben. Der Summentyp vereinigt die Werte der Basistypen A und B so, dass für jeden Wert immer klar ist, von welchem Basistyp er stammt, selbst wenn die Werte gleich heißen.
Die Implementierung ist eine Tagged Union und ist ein Tupel des Basistyps und des Werts.

### Beispiel

Das Standardbeispiel für den Summentyp ist die Baumstruktur. Jeder Knoten ist entweder ein Teilbaum oder ein Blatt des Baums.

## Quotiententyp

Ein Quotiententyp stellt einen Typ dar, dessen Gleichheitsrelation durch eine gegebene Äquivalenzrelation neu definiert wurde, so dass die Elemente des Typs in eine Menge von Äquivalenzklassen unterteilt werden. Die Kardinalität ist dadurch kleiner oder gleich der des Basistyps. Quotiententypen sind das Pendant zu den Quotienten der Mengenlehre.

## Aufzählungstyp

Ein Aufzählungstyp ist ein Datentyp für Variablen mit einer endlichen Wertemenge.