Go
Goで関数をカリー化してみる
第一級関数をサポートしていれば、その言語では関数のカリー化が可能だ。
第一級関数とは関数が第一級オブジェクトであるということで、平たく言うと「動的に生成できて、それが変数に格納できたり、関数の引数や戻り値にできたりする関数」だ。
Goは無名関数を作ることができ、その無名関数がクロージャになっているので、カリー化はあっさりできる。
静的型付けのコンパイル型言語だが、スクリプト言語のような書きやすさのある言語だと思う。
例えば、下のような「2つの数値を受け取って、その和を返す」という関数をカリー化してみる。
これをカリー化すると、下の「addNFunc」のようになる。
|