Microsoft Research が発行したホワイトペーパーいかにType Providers によって、「インターネット規模」の情報ソースをアクセスし、処理するのにF#が役立つかを説明している。
Type Providersが解決しようと意図している問題は何か?
- インターネット中にある様々なソースにあるデータの不均一な体系化
- ターゲット言語でこれらのソースのそれぞれにアクセスするために、パーシング層(自動生成された、あるいは手動で書かれた)を持つ必要性
Type Providersが提供する標準のメカニズムによって、F#プログラマが利用できるデータやメタデータのようなデータのソースの既存の型をラップできる。一度プロバイダが生成されるとその型の様々なデータソースやスキーマ用に個別のラッパーを作成する必要は無い。データ構造は、設計時(ソースへの接続性が前提)に、データソースに接続していることで、タイププロバイダが推論する。
このデータは、F#コンパイラーからもアクセス可能で、オンデマンドでデータソースからスキーマやメタデータを引っ張ってくることでインテリセンスやインラインドキュメンテーションのような様々なIDE機能が可能になる。
LINQと組み合わせることで、F#が様々なソースから直接データを操作するのに極めて役に立つようになる。Joe Pamer氏のプレゼンを見れば詳しいことがわかる。
F#3.0は、.NET framework 4.5と一緒にリリースされた。Microsoftは、最近F#3.0のCode-dropをアナウンスした。このフィーチャが見えないところでどのように実装されているのかを見ることができる。