高階関数とは?
こうかいかんすう
高階関数とは、関数を引数として受け取ったり、関数を戻り値として返したりする関数のことです。
高階関数(Higher-Order Function)とは、関数を引数として受け取るか、関数を戻り値として返すか、またはその両方を行う関数のことです。関数を「値」として扱う概念であり、関数型プログラミングの基礎をなします。
高階関数が存在するためには、言語が「第一級関数」(first-class function)をサポートしていること、つまり関数を変数に代入したり引数・戻り値として使えることが前提になります。現代の多くの言語(JavaScript・Python・Ruby・Scala・Haskell・Swift 等)がこの性質を持ちます。
代表的な高階関数には以下のものがあります。
- map:コレクションの各要素に関数を適用し、新しいコレクションを返す
- filter:条件を表す関数でコレクションの要素を絞り込む
- reduce / fold:コレクションを集約して単一の値にたたみ込む
- compose / pipe:複数の関数を合成して新しい関数を作る
高階関数を使うと、繰り返しのパターンを抽象化してコードの重複を減らせます。例えば「リストの各要素を2倍にする」「リストの各要素を文字列に変換する」という処理はどちらも map に関数を渡すだけで表現でき、ループを書く必要がありません。これにより、コードは短く宣言的になり、テストや再利用がしやすくなります。
使い方・例文
Pythonで list(map(lambda x: x * 2, [1, 2, 3])) と書くと [2, 4, 6] が得られるように、mapやfilterなどのコレクション操作で高階関数が日常的に使われます。
この用語をシェア
最終更新: