C# 3.0:LINQ の進化の過程と C# のデザインへの影響
面白い。
正直、LINQにはあまりいい印象を持っていなかったのだけど、これを読んで、少しは嫌悪感が和らいだように思う。
LINQのために、匿名型や型推論が取り入れられたのは知ってたけど、拡張メソッドもこのためにあったとは…C# 3.0=C# 2.0+LINQと言いきってもいいかも知れん。
また、C#のLINQはSQLライクな構文でありながら、なぜSELECTが最後に来るのかという謎も解けた。
最近、C#は関数型(宣言型とも言う)言語の特徴を取り入れると表明しており、また、SQLは関数型であるが、LINQはあくまで手続き型言語のシンタックスシュガーだということだ(もちろん、最終的にC#の機能である以上は手続き型なのは当然だが、そうではなく、SQLライクなあの構文自体が手続き型だということだ)。