はじめに 高階関数とは、引数や戻り値に関数を使う関数のことです。 関数型言語では当たり前のように使われていますが、手続き型言語ではそれほど使用されていないように感じます。さらにいうと言語によっては高階関数そのものが実装されていない場合もあります。 手続き型言語になれた人からしたら、高階関数の書き方には癖があると思うのですが、一度覚えると表現の幅が広がるので覚えておいて損はない考え方です。 今回はC#の例で話を進めていきます。C#ではデリゲートと呼ばれる関数を格納するオブジェクトを用いて高階関数を書けるようになっています。C#ではC言語の関数にあたるもののことをメソッドと言うので、コードの説明には「関数」でなく「メソッド」と書いていますが意味合いは同じです。 記述してあるコードですが動作確認を一切していません。そのままでは動かないかもしれないのであしからず。 みんなが好きなLinqの話題は出