In functional programming we often use phrases starting with ‘higher’. Each higher thingy generalizes the notion of thingy, allowing more abstractions and thus more code reuse. In this talk we shall look at three different ‘higher’s:
Higher-order functions, which gives us the power of treating a function from values to values as yet another value. From simple functional patterns such as map and folds, to more complex ones such as catamorphisms, all rely on this secret sauce.
Higher-kinded types, which gives us the power of speaking of a type constructor, such as List, in the same way as we talk of a ground type such as List. Talking about functors and monads intrinsically uses this ability from our languages.
Higher-rank (and impredicative) polymorphism, which gives us the power of using quantification anywhere in our types. As crazy as it sounds, higher-rank types are basic to model lenses in a nice way.
Subscribe to the Lambda World YouTube channel to be updated when new videos are added.