A versão 4.5 do .NET Framework inclui uma série de novos recursos para a linguagem F# 3.0 ("F Sharp"). Algumas são um novo tipo de atributo, strings delimitadas por aspas triplas, auto-properties e a geração de avisos de variáveis não utilizadas na compilação, sem contar as novidades nas bibliotecas básicas, como novos provedores de tipos e o suporte ao uso de consultas LINQ.
Uma das novidades é o atributo [<CLIMutable>] que, se colocado antes da declaração de um tipo record do F#, faz com que o compilador inclua tanto um construtor padrão quanto métodos setters no código CIL (Commom Intermediate Language) gerado.
"O atributo [<CLIMutable>] pode ser útil na vinculação de dados em aplicações WPF (Windows Presentation Foundation) ou em cenários do Entity Framework.", diz Brian McNamara, que faz parte do time de desenvolvedores do Visual Studio F# na Microsoft.
Outra novidade do F# 3.0 é a possibilidade de se delimitar strings com aspas triplas, fazendo com que todo o código entre essas aspas seja mantido sem alterações. Com essa funcionalidade, será possível incluir código XAML como uma string literal. O novo recurso permite também a inclusão de trechos de XML como dados em um programa, ou a passagem de grandes strings como parâmetros para provedores de tipos.
O uso das auto-properties também foi melhorado, se comparado com a versão anterior do F#. Agora os desenvolvedores podem usar essa funcionalidade com uma única linha de código, por exemplo: type MyClass() = member val Y = 0 with get, set,
Nesse trecho de código acima, a instrução member val denota a auto-property e o valor de Y é declarado depois de =.
Por fim, outra melhoria no F# é um recurso que permite a ativação de alertas de compilação de número 1182, via opção de linha de comando. Isso faz o compilador avisar quando existirem variáveis não utilizadas no código. No Visual Studio 2012, também é possível ativar esse recurso acessando a aba Build da caixa de diálogo Project Properties e adicionando o texto "--warnon:1182" no campo Other flags .
Quanto à nova funcionalidade, diz McNamara: "Em um grande projeto com mais de 100 mil linhas de código, esses avisos de variáveis não utilizadas são úteis para descobrir defeitos".