高階関数 【higher-order function】
関数を変数のような第一級オブジェクト(第一級関数)として扱うことができる言語で利用できる機能で、呼び出し元から関数を引数として受け取ったり、返り値として関数を返したりする関数のことを高階関数という。
高階関数を用いると、関数内で行う処理の一部を(関数内のコードではなく)関数呼び出しの形にしておき、外部から渡す関数によってその処理を実行するといった仕組みにすることができる。実装済みで提供される標準ライブラリ関数などの挙動を開発者が変更あるいは追加することができる。
例えば、JavaScriptの配列であるArrayオブジェクトには値の大小に基づいて整列(ソート)するsortメソッドが用意されているが、引数として比較関数を渡すことができる。2つの値を比較して結果を正負の値で返す関数で、開発者が独自に比較ルールを定義することができる。
(2023.10.18更新)