Microsoftは先日、 クエリ表現を通じたLINQサポートとさまざまなデータソースに対して簡潔なプログラミングが可能な組み込みプロバイダタイププロバイダシステムなどの新しい機能を追加したF# 3.0の開発者プレビュー版のリリースをアナウンスした
F# 3.0の機能であるインフォメーションリッチプログラミング(Information Rich Programming)は、データベース、Webサービス、Webデータフィードとデータブローカーに対してプログラムから直接アクセスできる。現在、これをするために以下のように記述することができる。
[<Generate>]
type Northwind = ODataService<"http://services.odata.org/Northwind/Northwind.svc/">
let db = Northwind.GetDataContext()query { for cat in db.Categories do
select (cat.CategoryID, cat.CategoryName, cat.Description) }
|> Seq.iter (fun (id, name, description) –>
printfn "ID: %d\nCategory: %s\nDescription: %s\n" id name description)
すでに、一般的なデータソースにアクセスするためのタイププロバイダが存在しており、ODataサービス、データベース接続、データベーススキーマ、Entityデータモデルによるデータ仕様、Webサービス、リソースファイルにアクセスすることができる。また、タイプシステムは、オープンでプラグイン可能なため、開発者やサードパーティーが作成したプロバイダを組み込むことができる。
その他の新しい機能
- 自動実装プロパティは、ストアする処理を記述しなくてもプロパティを実装することができる。
- パラメータヘルプとインテリセンスの拡張
- 変換オペレータと計算オペレータを含む、NULL許容型のライブラリサポート
- 国際単位 (SI)の計測タイプの単位。以前は、F# PowerPackに含まれていたが、F#のコアライブラリに昇格した。
さらなる詳細は、MSDNドキュメントを読んで欲しい。また、CodePlexのF# Sample packをダウンロードして、それらの機能解説を確認することができる。
F#は、 命令型とオブジェクト指向プログラミングも包含する関数指向プログラミングであり、.NET Frameworkをターゲットにしたマルチパラダイムプログラム言語である。