In functional programming, there are a few unique data types and classes. We will discuss them here. Apart from the regular data types, functional programming allows you to have three different kinds of data types, listed as follows:
- Type constructor: This is a theoretical concept; please don't expect a constructor building a type. Even though type constructors are in FP, they are widely used even outside FP, under a different name—generic types. So, when a data type takes another type as a parameter, then that type is called a type constructor. The following are a few examples of type constructors:
- List<T> (In Kotlin collections)
- Map<K,T> (In Kotlin collections)
- Option<T> (In ArrowKT)
- Either<L,R> (In ArrowKT)
- Type classes: These are basically interfaces that allow you to define a set of extension functions over...