Higher Order Function — A “boss” function that takes in smaller worker functions. Usually these workers are “applied” on a sequence.
Simplest Example: Python filter()/reduce()/map()
First Class Function — Each function is treated like a regular object and passed in/out of HOF. Often implemented as lambda (or closure). Functor too [[Essential C++]] P127.
Why FirstClass? I think objects are the only first class thing in traditional languages.
Simplest Example: Python lambda
Python has other HOF features. I guess decorator might be.
STL functors qualify as FCF. STL algorithms taking those functors qualify as HOF. For example,
C# Linq has many HOF functions like ForEach(), Aggregate() and many aggregate functions. Many other C# function take (unicast) delegate arguments.
C# lambda (and anonymous delegates) is the typical FCF.