ラムダ

Λ:ギリシャ語大文字
λ:ギリシャ語小文字
 
顔文字(絵文字?)で見るような造形の文字だが、「ラムダ式」というプログラミング上の記法を聞いたことがある方も多いのではないだろうか。
開発に使用する言語に依存してか、それとも自分の知識と力量不足か、私自身はこの「ラムダ式」なるものを用いたことがない。
もっと言えば、ラムダ式って何?な感じだった。
気にはなっている語句だったので、これは勉強がてら調べてみよう、と。
 
ジェネリックもさわりのさわりにだけしか触れていないので、続きを書きたいところだが、ちょっと気分を変えて。
さて、「ラムダ式」とは。
 
英語表記では、Lambda Expression(s)、となる。
はてなキーワードの解説では「名前のない関数」的な記法だと捉えるのが良い、とつづられていた。
となると、実はココでも取り上げているではないか。
匿名メソッド(delegate)である。
 
まさにその通りで、ある処理(機能)の固まりを名前付きの関数化せずに表現するような方法を指しているようだ。
言語的には、歴史上 Lisp が古くから採用している方式であり、現在は Python などでも用いられる。
もちろん、VB / C# でも可能。
 
C# を中心に勉強をすることを目的とした Blog なので、C# に注目にしてみる。
どうやら、C# は 2.0 や 3.0 にバージョンアップするに従い、ラムダ・匿名メソッドの辺りの言語仕様にもまだメスが入っている状況のようだ。
その経緯を端的にうまく説明している記事を見つけた。
 

窓際プログラマーの独り言 - C#3.0:ラムダ式
(Gushwellさんという方のBlog)
 http://blog.livedoor.jp/gushwell/archives/51061352.html

 
見事にC#1.1→2.0→3.0での処理の記述変化を説明しているではないか。
他の言語でも見られる傾向だが、=> という演算子(?)を使って、ラムダ式を表わすことが多いようだ。
 
その実用性が如何ほどのものなのか、実践してみたいところだ。
どういったケースに適用できるのか。
他の機能説明でも同じようなことを言っているが、真新しい機能を学んだ時にどういう場合に使用するのが良いのかまで掴み切れないことがある。
サンプルコードを書くクセをつけて、積み重ねないとダメなんだろうなぁ。