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. An example structure is (Z, +, -), a set of all integers (in math, Z refers to set of all positive and negative integer numbers) 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 ...