Visual F# 2010 中的新增功能
F# 是 Visual Studio 2010 中提供的一种针对 .NET Framework 的多范例编程语言。 F# 支持函数编程、面向对象的编程以及命令性编程。
Visual Studio 2010 版的 Visual F# 的功能
以下各节介绍 Visual F# 的第一个版中提供的一些功能。
支持函数编程
可将函数视为值,并可以直接传递给其他函数。 使用此功能可以轻松地进行高阶函数(对函数进行操作的函数)编码。 同时还可以轻松地编写更具声明性的代码,从而减少出错的机会。
F# 支持组合编程。 可以使用简单的运算符语法按顺序组合和调用函数。 可以使用管道运算符组合函数调用,从而允许将一个函数的输出或返回值作为输入提供给另一个函数。 还可以通过使用组合运算符将函数组合在一起来定义新函数。
有关更多信息,请参见函数 (F#)。
Lambda 表达式
通过 Lambda 表达式 可以就地定义函数,而不必单独命名函数。 有关更多信息,请参见 Lambda 表达式:fun 关键字 (F#)。
有用的数据类型
F# 提供了支持函数编程风格的类型,例如,用于简单数据集合的元组和用于结构化符号数据的可区分联合。 有关更多信息,请参见元组 (F#)、可区分联合 (F#)和选项 (F#)。
不可变的数据类型
F# 提供不可变的数据结构,例如,不可变的列表、映射、集、序列和记录。 有关更多信息,请参见列表 (F#)、序列 (F#)和记录 (F#)。
模式匹配
通过模式匹配功能,可以将数据分解为各个构成部分,也可以基于数据的分解执行复杂的分支操作。 模式匹配还是可扩展的。 有关更多信息,请参见match 表达式 (F#)、模式匹配 (F#)和活动模式 (F#)。
异步和并行编程
F# 支持异步编程,同时还包括一些构造,使得这种编程方式比以前更加容易。 有关更多信息,请参见异步工作流 (F#)。 F# 还可以与 .NET Framework 的并行扩展结合使用。 通过 F# Power Pack,还可以将 Parallel LINQ (PLINQ) 与 F# 结合使用。 有关更多信息,请参见.NET Framework 中的并行编程。
交互式编程
Visual F# 包括一个 F# 解释器,即 F# Interactive (fsi.exe),它将以交互方式编译和执行代码。 这样,您就可以轻松地制作代码的原型,并试验编码构造,而无需编译项目。 F# Interactive 还与 Visual Studio IDE 集成在一起。 有关更多信息,请参见 F# Interactive (fsi.exe) 参考。
延迟计算
F# 提供延迟计算功能,此功能可以将计算延迟到需要结果时再进行。 有关更多信息,请参见延迟计算 (F#)。
支持面向对象的编程
F# 支持面向对象的语言功能,F# 程序通过这些功能可以完全访问 .NET Framework,而您也可以通过这些功能使用 F# 来生成 .NET Framework API。 有关更多信息,请参见类 (F#)、成员 (F#)和继承 (F#)。
支持命令性编程
F# 支持命令性代码构造,例如,可变的变量和数组、具有副作用的函数以及循环构造。对于某些情况,这种编程是解决问题的最佳方式。
支持数学计算
F# 支持数学计算。 这包括运算符重载支持、处理泛型的运算符以及包括求幂运算符在内的一整套数学运算符。
F# 功能还支持带有关联的度量单位的浮点数据,从而允许使用带有单位检查的浮点公式。
高级类型系统
F# 支持泛型编程。 有关更多信息,请参见泛型 (F#)。
F# 是一种支持类型推理的静态类型化语言。 这意味着,所有程序元素的类型在编译时都要明确,从而确保类型安全,但您不需要显式指定每个值的类型。 由于 F# 编译器通常能够推断出程序元素的类型,而无需提供显式类型,因此代码将更紧凑,并且一些与类型不匹配相关的编程错误也将减少。 类型推理还包括自动泛化,这意味着,可以为泛型的函数将会自动编译为泛型。 有关更多信息,请参见类型推理 (F#)。
有用的库
Visual F# 包括一组为核心语言、集合类型、对 F# 程序集的反射以及格式化 I/O 提供支持的库。 F# 还提供对 .NET Framework 4 的完整功能(例如,.NET Framework 的并行扩展和 Windows Presentation Foundation)的访问。 有关更多信息,请参见 .NET Framework 4。