Higher-order programming
Appearance
Higher Order Programming is the ability to use functions as values.
So you can pass functions as arguments to other functions and functions can be the return value of other functions. This style of programming is mostly used in functional programming, but it can also be very useful in 'regular' object oriented programming. A good example of this is the Ruby Programming Language, which combines all the advantages of pure object oriented programming and higher order programming.
(This article is licensed by CC "by". taken from
http://w3future.com/html/stories/hop.xml
I couldn't check who exactly wrote this original article. )