First-Class Citizens

The term “First-Class Citizens”, within the context of Computer Science, was coined by Christopher Strachey. This term represents the following principals:

The rights and privileges of first-class citizens

  1. To be named by variables.
  2. To be passed as arguments to procedures.
  3. To be returned as values of procedures.
  4. To be incorporated into data structures.

A common case, when a programming language refers to functions as “first-class citizens”, this equates the following principles to be true for them.

Noted, for historical reasons.