F# 3.1语言版发布

微软的函数式编程语言F#最近随Visual Studio 2013预览版发布了3.1版本。F#源自微软英国剑桥研究院,但不管出身如何,现在已被微软完全支持,并通过Apache 2.0开源许可进行授权。

在F#小组的一份公告中作者指出,与以前版本着重实现主要特性不同,该版本旨在对语言进行改善。不过在这些改进中,F#开发者将受益于以下新特性:改进的F#类型推断、printf性能、便携库支持和项目双向兼容。

3.1版的主要新增语言特性:

  • 命名的联合类型字段——现在可以为每个联合类型中的联合字段命名
  • 数组切片扩展——之前的数组切片只能用于同等维度的数组,现在这不是必须的了
  • 为LINQ风格的方法增强了类型推断——改进了F#中使用函数作为参数的重载方法的类型推断
  • 支持第一个参数为类型参数的C#风格的扩展方法——3.1支持使用扩展方法(this关键字),比如:static member M<T>(this T input, T other)
  • 在特性和字面量表达式中对常量进行组合——比如,可以使用“+”来连接字符串,或对枚举标记进行按位OR操作(|||)

编译器和库的新增部分

  • Printf的性能——不需要改变原来的代码就能享受明显的速度提升(据说快了40倍)
  • 引用形式的调试信息——在fsc.exe或fsi.exe中使用—quotations-debug标记
  • 支持.NET 4.5 + Windows Store便携库——即F#可以在构建“.NET 4.5 + Windows Store”时使用C#便携程序集,而F#也可以反过来为该配置生成程序集

对于在多代小组中使用Visual Studio的F#开发者来说,一个重大新增特性是支持项目双向兼容。任何面向F# 3.0的F#项目都能在VS2012或VS2013中编辑。与此特性一致的是,可以在F#项目对话框或解决方案浏览器中指定要开发的应用程序使用哪个版本的F#。

用户今天就可以通过VS2013预览版访问F# 3.1。需要注意的是,上述3.1增强还没有更新到支持非Windows平台(OS X、Linux等)的开源版本中。F#小组承诺3.1特性会在完成后立即发布到OSS项目中。

查看英文原文:F# Moves Forward in 3.1 Preview Release

你可能感兴趣的:(F# 3.1语言版发布)