# Higher-order

**Higher-order functions** are functions that can treat functions (function as language construct) like any other value, e.g. they can accept functions as arguments and return functions.

**Higher-order logics**

* quantifying over _individuals_
* quantifying over _sets of individuals_
* quantifying over _sets of predicates_

_n-order logics_, ZOL » FOL » SOL » HOL

* Zeroth-order logics, n = 0
* First-order  logics, n = 1
* Second-order logics, n = 2
* Higher-order logics, n > 2

FOL,SOL are not higher-order logics.

To achieve **higher-order** you need to start have variables that range over "higher" concepts.

Orders: a theoretic language with variables that range over objects is a higher-order language (right?)
