6 ms·
Function composition is a single, special case of a function accepting functional arguments. You could define the compose operator as below: compose : (a -
by mneary 12y ago
Function composition is a single, special case of a function accepting functional arguments. You could define the compose operator as below:
compose : (a -> b) -> (b -> c) -> (a -> c)
a `compose` b = \x -> b(a(x))
However, there is a whole spectrum of additionally possible functions which can be built to accept functions as arguments. Here's a couple of example:
partial3 : (Integer -> Integer -> Integer) -> (Integer -> Integer)
partial3 f = f 3
map : [a] -> (a -> b) -> [b]
map [] f = []
map (x:xs) f = (f x):(map xs f)
The first one takes a function and applies an argument, 3; the next one takes a list and a function and maps the list using the provided function. The idea of functions as arguments is a very powerful one, and from my understanding one with which people sometimes struggle.