To be accurate, only when functions are able to be manipulated at run time - i.e., are first class objects - may a language support higher order techniques. In C, you can pass in a function pointer as a parameter, but you can't create or manufacture functions on the fly.