ADTs

Algebraische Datentypen

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.