Dart
Dartで関数をカリー化してみる
関数をカリー化するには、その言語が第一級関数をサポートしている必要がある。
要するに「関数を返す関数」(高階関数という)が作成できることが前提となり、その返される関数がクロージャになっているか、その関数にキャプチャ機能があるか、どちらかが必要だ。
DartはJavaScriptを置き換える目的で誕生しているので、JavaScriptと同じくすべての関数がクロージャになっている。
関数を返す時は、戻り値の型はFunction型で統一できるので、とても書きやすい。
ここでは引数を2つ取り、その和を返す下のような単純な関数をカリー化してみることにする。
上の関数をカリー化すると、下の「addNFunc」のような感じになる。
|