何かと話題になる「高階関数」ですが、自分なりのまとめです。 関数型言語だと使う目的が違ったりすると思うので、ECMAScriptといった言語が中心です。 高階関数とは Wikipediaによると言葉の定義としては以下の通り。 高階関数とは、第一級関数をサポートしているプログラミング言語において少なくとも以下のうち1つを満たす関数である ・ 関数(手続き)を引数に取る ・ 関数を返す 定義としては実にシンプルで、どのようなときに使えるかを記事では書いていきます。 関数を引数に取る関数 ECMAScriptを触っている人なら”コールバック関数”という単語を目にしたことも多いと思います。このコールバック関数を受け取ってる関数が高階関数です。 どんなとき使う? 一言で表すなら「引数の関数に一部処理を委譲することで、アルゴリズムを抽象化(共通化)できる場合」です。 具体的な例 例えば、ソートを考えて