--- from: http://rosettacode.org/wiki/Function_composition note: Higher-order functions