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;
こんなもん突然見たらワケわかんねーっしょ。ラムダ式って必要かい??
関数型言語を使い慣れてる方にはいいのかな??