2_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
Abschnitt betitelt „Summen Typ“Ein Summentyp repräsentiert eine Menge von möglichen Werten.
Beispiel:
Option = Some(bool) | NoneHier 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
Abschnitt betitelt „Produkt Typ“Ein Produkttyp repräsentiert eine Struktur, bei der alle enthaltenen Werte gleichzeitig vorhanden sind
Beispiel:
Punkt = x: u8, y: u8Hier ist Punkt ein Produkttyp mit den Feldern x und y, die beide benötigt werden, um einen Punkt vollständig zu definieren.