読み方 : こうかいかんすう

高階関数【higher-order function】

概要

高階関数とは関数を引数として受け取ったり、返り値として返したりする関数のこと。関数を変数と同様に扱える「第一級関数」の概念を前提とした機能で、処理の一部を呼び出し元から差し替え可能にする仕組みとして用いられる。
高階関数のイメージ画像

プログラミング言語の中には、整数や文字列などのデータと同じように、関数を変数へ代入したり別の関数へ渡したりできるものがある。このような関数を「第一級オブジェクト」あるいは「第一級関数」と呼ぶ。高階関数はこの性質を前提として成立する機能で、JavaScriptPythonRubyHaskellScalaなどで利用できる。

高階関数を用いると、関数内で行う処理の一部を固定せず、外部から渡された関数に委ねる構造にできる。同一の高階関数でも引数として渡す関数を変えるだけで異なる挙動を実現できるため、コードの重複を減らしつつ再利用性を高めることができる。

例えば、JavaScriptのArrayオブジェクトが持つsortメソッドは引数として比較関数を受け取る。開発者は2つの要素の大小関係を負値、0、正値で返す比較関数を記述して渡すことで、独自ルールの並び順で並べ替えることができる。同様に、配列の各要素を変換するmapメソッド、条件に合う要素を抽出するfilterメソッド、要素を集約するreduceメソッドなども高階関数であり、配列操作の抽象化に利用されている。

非同期処理における「コールバック関数」も高階関数の応用の一つである。特定の処理が完了した後に実行する関数を引数として渡す形は、Web開発において頻繁に用いられる。かつては関数型言語に特有の概念とみなされることが多かったが、現在では主要な汎用言語の多くに標準的に取り入れられており、現代のソフトウェア開発における一般的な設計手法として定着している。

(2026.6.17更新)
 

他の辞典等による「高階関数」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。