無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

LINQをつつく3−ラムダ式。ランバダ式じゃないよ。でもラム式かもね♪

前回 LINQを言語でサポートする機能を付加する事の重要性についてつついてみたけど、 勿論LINQサポート機能はまだあるんピヨ。それは ラムダ式(Lambda Expression)だっちゃ! ランバダ式じゃないよ、それじゃあ妊娠しちゃう (※昔「ランバダで妊娠」というお馬鹿記事があった)ボクはラム式と呼んでるだっちゃ!
ラム式、いや、ラムダ式というのは、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のように一々比較関数を定義するのじゃなくて、ラムダ式で直接記入するという方式の方が明らかに生産性が高いよね。この比較サンプルだけじゃあ、言語としてのラムダ式がわかりにくいと思うから、各言語のラムダ式の説明のリンクをこの下に張っていくピヨ。
バイバイだっちゃ!
別窓 | LINQ | コメント:0 | トラックバック:0 | ∧top | under∨
<<中の人の徒然草63 | 無差別に技術をついばむ鳥 | VB.NETを咥えてLINQをつつく2−匿名型。匿名でお願いします。>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |