LINQをつつく3-ラムダ式。ランバダ式じゃないよ。でもラム式かもね♪
ラム式、いや、ラムダ式というのは、LISPなどの関数型言語で主に採用されている式の形態で・・・ と説明したら退屈なだけだから以前紹介したサンプルの抜粋をお見せするだっちゃ!
//ラムダ式がないC++/CLIのサンプルだっちゃ
ref class Wankuma {
public:
static bool Where(String^ name) {
return name->Length > 5;
}
};
//WHERE句を実行
IEnumerable < String^ > ^ iwankuma =
(IEnumerable< String^ > ^)wankumas;
Func< String^, Boolean > ^ func = gcnew
Func< String^ ,Boolean > (Wankuma::Where);
IEnumerable< String^ > ^ wresult =
Enumerable::Where< String^ > (iwankuma, func);
//ラムダ式があるC#のサンプルだっちゃ!
IEnumerable result = from name in wankumas
where name.Length > 5 //←C++/CLIのコードはこの一行
orderby name
select name;
ブラボー。圧倒的だっちゃ。勿論この比較はラムダ式だけじゃなくて、他の機能の影響もあるけど、C++/CLIのように一々比較関数を定義するのじゃなくて、ラムダ式で直接記入するという方式の方が明らかに生産性が高いよね。この比較サンプルだけじゃあ、言語としてのラムダ式がわかりにくいと思うから、各言語のラムダ式の説明のリンクをこの下に張っていくピヨ。
バイバイだっちゃ!