higher order function
関数を引数に取ったり,関数を結果として返すような関数.数学では汎関数と呼ばれることもある.例えば次のように定義される関数fは,2つの引数 g, a を取り,a に g を2回適用した結果を与える.
f(g,a) = g(g(a))
SchemeやML, Haskellといった関数型プログラミング言語では高階関数が多用される.
上の関数 f の定義をSchemeで書くと以下のようになる.
(define (f g a) (g (g a))
ML(Standard ML)では以下の通り.
fun f (g, a) = g (g a);