Enumerations in Swift are actually algebraic data types that are types created by combining other types. Algebraic data types are essential to many functional programming languages such as Haskell.
An algebraic data type is based on the idea of algebraic structures, which are a set of possible values and one or more operators to combine a finite number of these values into a single one. A well-known structure, for example, is (
-), a set of all integers with the plus and minus operations on them.
So an algebraic data type is a data type that is created by algebraic operations, specifically, with sum and product as our operations.
Additionally, algebraic data types are composite data types that may contain multiple values ...