今度の.NET Framework 4.5には、F# 3.0 (F Sharp) 言語に型プロバイダやLINQクエリといったコア機能に加えて、新しい型属性、三重クォート文字列リテラル、オートプロパティ、未使用変数の警告といった新機能が取り込まれる。
新たにF# 3.0で導入された [<CLIMutable>] 属性をF#レコード型に付与すると、コンパイラは生成される中間言語にデフォルトコンストラクタとプロパティセッタを発行する。
「[<CLIMutable>] 属性は、WPFデータバインディングやEntity Frameworkシナリオで役立つでしょう」と、MicrosoftのVisual Studio F#開発者、Brian McNamara氏は言う。
F# 3.0には三重クォート文字列リテラルが導入される。三重クォートで囲まれたコードはすべてverbatimを保たれ、エスケープできない。この機能を使うことで、開発者はXAMLを文字列リテラルとして追加でき、XMLコードをプログラムにデータとして埋め込んだり、型プロバイダへの引数として大きな文字列を渡すのに役立つ。
「私はF#でコードを書いて4年になりますが、F#がVisual Studioで完全にサポートされ、F#がメインストリームになるのを見ることができ、本当にうれしいです」とM-Braceのリードエンジニア-アーキテクトのNick氏は言う。
F# 3.0には、以前のバージョンと比べて改善されたオートプロパティも含まれている。開発者は以下のように1行のコードでこれを利用できる。
type MyClass() = member val Y = 0 with get, set,
上のコードでは、member valがオートプロパティを意味しており、Yの値が=の後ろに宣言されている。
「私はF#を使って2年以上になりますが、すごく気に入っています。以前はC#で開発していて、最初の切り替えはショッキングでしたが、その価値はありました」と、ソフトウェア開発者のHuw Simpson氏は言う。
F# 3.0にはコマンドラインオプションを使って警告ナンバー1182をアクティベートできる新機能が導入されている。これを使うと、コードに未使用変数があれば、F#コンパイラが警告を出してくれる。Visual Studio 2012では、プロジェクトのプロパティダイアログのビルドタブのその他フラグフィールドに--warnon:1182を追加することで、この機能をアクティベートできる。
100,000行もある巨大なプロジェクトでは、未使用変数の警告はバグを発見するのに役立つかもしれないと、MicrosoftのVisual Studio F#開発者McNamara氏は言う。