First-order vs Higher-order Programs Can someone explain the difference between first-order programs and higher-order programs in the context of programming languages?

My understanding so far is that Functional Languages (most) use higher order programs. Plus, higher functions either a) take other functions as arguments, or b) return functions as results.

Any correction, or further elaboration would on the difference between the two would be very appreciated.
Your assessment is correct.


A higher-order program takes programs as input or produces a program as output.
A first-order program takes values of base types as inputs and produces a value of base type as output.


In functional programming, functions are identified with programs, so we talk more about higher-order functions than higher-order programs.

This use of the word "higher-order" is common. For example, higher-order logics allow predicates to the arguments of other predicates.