A higher-order function is a function that operates on other functions instead of on data values. Some of these take data arguments and manufacture functions to order; others, like the imap() function of Chapter 4, transform one function into another one.