Algebraic data types
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 types are composite data types that may contain multiple values such as a data type with multiple fields, or they may consist of variants or multiple finite different values.
Simple types
The Boolean
type is a simple algebraic data type as it may take one of...