BT

F#用LINQ

| 作者: Jonathan Allen フォローする 530 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2012年3月11日. 推定読書時間: 2 分 |

原文(投稿日:2012/03/07)へのリンク

Visual Studio 11 betaに含まれているF# 3.0は、LINQ式を使えるようになった。

F#は、これまでもLINQできる基盤ライブラリにアクセスしてきたが、F# 3 がLINQシンタックスが実際にサポートされる最初のバージョンとなった。 Visual Basicのように、F#のLINQはクエリの中で直接 count, sum, first, lastのような集約関数をサポートする。またVBのように、F#は終りに“select” 句を必要としない。その代わりに、全てのクエリは“query {“で始まり、対応した中括弧で終わる式の中にある必要がある。

LINQ すなわち Language Integrated Query(言語に統合されたクエリ)は、SQLのようなシンタックスで元々研究言語 Cω 用に開発され、最終的にVisual Basic と C#となってリリースされた。違うものであるが、概念的には80年、90年台の言語、例えば dBasePowerBuilderに似ている。

F# 3でリリースされたもう1つのフィーチャがType Providerである。これはかなり込み入ったトピックで、コード生成と動的型付けの両方に替わるものとして考えることができる。更に知りたければ Joe Pamer氏の Type Providersに関するプレゼンを見て欲しい。特に何もせずに、F#は以下のもののtype providerを持っている。

  • OData サービス
  • SQLのようなデータベース コネクション
  • LINQ to SQLのdbmlファイルのようなデータベーススキーマ
  • Entity Data Modelフォーマット(すなわちEDMXスキーマファイル)
  • WSDLフォーマットのwebサービス
  • .resx拡張子を持つリソースファイル

type providerの面白いフィーチャは、デザイン時に type providerをVisual Studioの IntelliSenseに入れられることである。すなわちコード補完ヒントが実際のプロパティやメソッドを見せる代わりに「ロード中」と表示する時がある、ということである。遅れは、特定の type providerと遠方にあるサーバーの反応具合に依存する。

F#にはまた、ポータブルライブラリ(Portable Library)のサポートも入っている。これは、別バージョンの再コンパイル無しで、 .NET, Silverlight, Windows Phone, そして、あるいはXNA 間で共有できるDLLである。

最後に、F# 3は“member val”キーワードを介して、自動実装プロパティを提供する。プロパティは、宣言の一部として初期化される必要があり、ミュータブルプロパティは、get, set サフィックスが必要である。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT