C# 3.0:ラムダ式 | わがままプログラマーのあれもこれも

C# 3.0:ラムダ式

当ブログの初めての記事が"ラムダ式"かい!(笑)

まぁまぁ。。


C# 3.0を最初に使った時に、こんなコードが出てきて「ん???」となった。


Function<int, int> func = x => { return x + 1; };


この突然出てきたxってなぁに??ってね。

これがラムダ式というやつです。(まぁ皆さんもう知ってるってか…)


要するに、上記式はC# 2.0 で書くところのこれの略なんですねー。

Function<int, int> func = delegate(int x){ return x + 1; };


C# 3.0ラムダ式では、

Function<int, int> func = (int x) => { return x + 1; };

と書きます。C# 2.0のdelegate記述とほとんど代わり映えしませんね。

ところが、これは以下のように省略できるのです。


Function<int, int> func = (int x) => x + 1;

そしてこれが更に
Function<int, int> func = (x) => x + 1;

でもって、
Function<int, int> func = x => x + 1;

こんなもん突然見たらワケわかんねーっしょ。ラムダ式って必要かい??

関数型言語を使い慣れてる方にはいいのかな??