IT用語集 › プログラミング › 高階関数

高階関数

プログラミング Svenska → 更新: 2026-10-21

関数を引数に取る、または関数を返す関数。map・filter・reduceが古典例で、関数型プログラミングの中核概念だ。

例えば[1,2,3].map(x => x*2)では、mapが高階関数で、アロー関数が引数にあたる。const multiplier = n => x => x*nのように関数を作って返すこともできる。用途はコールバック、イベントハンドラ、デコレータ、ミドルウェアチェーン、カリー化、部分適用など幅広い。前提となるのは、関数を値として扱えるファーストクラス関数だ。データだけを受け取る関数は一階関数と呼んで区別する。

Rustではクロージャ(Fn/FnMut/FnOnceトレイト)とイテレータで同じことができる。data.filter(...).map(...).reduce(...)のようなパイプライン記法は、高階関数を鎖状につないだものにほかならない。最近のJITは単純な高階関数呼び出しならインライン化してくれるので、速度を理由に避ける必要はあまりない。

← 用語集に戻る