Higher order functions

In Unison functions can be passed as arguments to other functions. A function that takes a function as an argument is sometimes referred to as a "higher order" function. Many of the functions which operate over Unison collection types are "higher order", taking a function argument which describes how the collection should be transformed.

For example jsonschema.lib.base.data.List.map is a higher order function because it expects a function argument as an argument (a -> b).

jsonschema.lib.base.data.List.map : (a ->{𝕖} b) -> [a] ->{𝕖} [b]