ADTs
In der Praxis ermöglichen algebraische Datentypen eine klare und strukturierte Modellierung von Daten, was besonders in funktionalen Programmiersprachen wie Haskell, ML oder Scala häufig genutzt wird. Sie bieten eine elegante Möglichkeit, komplexe Datenstrukturen zu definieren und zu manipulieren.
Summen Typ
Ein Summentyp repräsentiert eine Menge von möglichen Werten.
Beispiel:
Option = Some(bool) | None
Hier bedeutet Some(bool)
, dass dieser Typ von einem Boolean begleited wird.
None hat keinen Wert, sondern steht nur als Typ fuer sich.
Dieser Typ kann im Ast Some 2 Werte einnehmen |{true, false}|. Im Ast None genau einen |{None}|. Daraus ergibt sich die Summe 3.
Produkt Typ
Ein Produkttyp repräsentiert eine Struktur, bei der alle enthaltenen Werte gleichzeitig vorhanden sind
Beispiel:
Punkt = x: u8, y: u8
Hier ist Punkt ein Produkttyp mit den Feldern x und y, die beide benötigt werden, um einen Punkt vollständig zu definieren.