dmd v0.161

なんだかD言語の新バージョンが凄いです。
関数周りが大幅強化です。
とりあえず無名関数と関数テンプレートが凄い強化。
大体使い方はこんな感じ。

//関数の引数の手前にテンプレートパラメータを書く
T map(T,Fn)(T a,Fn f){
	auto x = a.dup;
	foreach(inout v;x)v=f(v);
	return x;
}
void main(){
	const int []x=[1,2,3,4,5];
	//無名関数に打つのが面倒なdelegateを使わなくてもよい
	//帰り値の型も書かなくてよい。
	foreach(v;x.map((int v){return v*v;}))
		printf("%d ",v);
}

関数テンプレートはC#3.0チックな書き方になった。
とりあえず、あとは引数も推論してくれると、さらにありがたいかなー。
とか思ったり思わなかったり。