Passing functions to other functions is only half the power of first class functions.
Functions may also act as factories, and produce new functions as their results. The
ability to create functions with arbitrary capabilities within the program machinery can
be quite powerful. For example, one might computationally produce a new comparison
function that, in turn, was passed to the qsortF function in the previous panel.