第一級関数
Pythonではdef文またはlambda式によって関数を生成する。第一級関数としては十分柔軟であるが、lambda式によって定義できる関数の本体は式に限られ、文を含む関数を生成することはできない。
Schemeでの例:
スタックベースのプログラミング言語では、高階関数の実装における自由変数の取り扱いに関して困難な問題が生じる。これはFunarg問題("function argument" の略称、英: funarg problem)として知られている。
型理論では、型Aの値を受け取り、型Bの値を返す関数をA → B(もしくはB)と書く。これはP → Qと似ているが実は同じもので、カリー・ハワード対応(カリー・ハワード同型対応、英: Curry-Howard correspondence)によれば、関数型は論理包含に関係しており、ラムダ抽象は自然演繹における仮説、関数の適用はモーダスポネンスに相当する。また多くのプログラミング言語の機能として、型理論は第一級関数が連想配列などのデータ構造をモデルするのにも用いられる。
圏論においては、第一級関数は閉圏に相当する。たとえば単純型付きラムダ計算(英: simply typed lambda calculus)は、カルテシアン閉圏(デカルト閉圏)の言語に相当する。