扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:朱先忠 来源:51CTO 2010年4月17日
关键字: Visual Studio
一、简介
F#是一个基于.NET框架的多模式编程语言,Visual Studio 2010中对此语言提供了内置支持。F#支持函数式编程、面向对象编程和命令式编程。
以下各节描述的是在Visual F#的第一个正式版本中所提供的一些特征。
二、支持函数式编程
函数被视为值,可以直接传递给其他函数。借助于此功能,你可以方便地编写高阶函数(调用函数的函数)。这使得开发人员可以更容易编写往往更不容易出错的声明性代码。
F#支持组合式编程。你可以通过使用简单的操作符语法来组合函数。您可以通过使用管道线操作符把函数调用组合起来,这样可以使一个函数的输出或返回值能够传递到另一个函数作为输入。您还可以通过使用组合操作符把函数组合起来的方式来定义一个新函数。
欲了解更多的信息,请参见“函数(F#)”。
三、Lambda表达式
Lambda表达式能使函数进行即时定义而不必加以命名。欲了解更多的信息,请参阅“Lambda表达式:fun关键字(F#)”。
四、有用的数据类型
F#提供了支持函数式编程风格的类型,如针对简单数据集合的元组和针对结构化符号数据的discriminated unions。欲了解更多的信息,请参阅“元组(F#)”、“Discriminated Unions(F#)”和“Options (F#)”。
五、不可变的数据类型
F#提供了许多不可变的数据结构,如不可变的列表、映射、集合、序列和记录等。欲了解更多的信息,请参见“列表(F#)”,“序列(F#)”和“记录(F#)”。
六、模式匹配
模式匹配功能允许您把数据分解成各个组成部分,然后以分解的数据为基础执行复杂的分支运算。模式匹配也可以扩展。欲了解更多的信息,请参阅“匹配表达式(F#)”,“模式(F#)”和“活动模式(F#)”。
七、异步并行编程
F#支持异步编程,并且提供了使这种编程比以往更容易的结构。欲了解更多的信息,请参阅“异步工作流(F#)”。F#也可以用来与.NET框架并行扩展一起使用。欲了解更多的信息,请参阅“.NET框架中的并行编程”。
八、交互式编程
Visual F#中还包括了一个F#解释器,F#互动器(fsi.exe),它能够以交互方式编译并执行代码。这使您能够轻松地创建原型代码,并尝试在不需要编译一个项目的情况下进行结构编码。F#互动器也与Visual Studio IDE集成在一起。欲了解更多的信息,请参看“F#互动器(fsi.exe)参考”。
九、延迟计算
F#支持延迟计算,这可以使您直到需要结果时才进行计算。欲了解更多的信息,请参阅“延迟计算(F#)”。
十、支持面向对象编程
F#支持面向对象语言特征。除了让您使用F#语言开发.NET框架API外,这种特征可以使F#程序能够充分地访问.NET框架。欲了解更多的信息,请参见“类(F#)”,“成员(F#)”和“继承(F#)”。
十一、支持命令式编程
F#支持命令式编程结构,如可变的变量和数组,有副作用的函数和循环结构等。这特别适合于使用上述方式编程解决问题的场所。
十二、支持数学计算
F#支持数学计算。这包括对操作符重载的支持,使用泛型的操作符和一全套数学运算符,其中包括幂运算符。
F#还提供了对关联了测量单位的浮点数据的专门支持,这可以支持对浮点公式进行单位检查。
十三、先进的类型系统
F#的支持泛型编程。欲了解更多的信息,请参见“泛型(F#)”。
F#是静态类型的语言,它支持类型推断。这意味着,所有的程序元素在编译时都有一个明确的类型,从而保证了类型安全,但你不必显式地指定每个值的类型。因为F#编译器能够不断地推断一个程序元素的类型而不必显式地提供类型。这样一来,代码更加紧凑,与此相关的编程中的类型不匹配错误大大减少。类型推断还包括自动归纳,这意味着有可能是泛型的函数将被自动编译为泛型。欲了解更多的信息,请参见“类型推断(F#)”。
十四、有用的库
F#包括了一组库,为核心语言、集合类型、针对F#程序集的反射和格式化I/O等提供支持。F#还提供了对.NET框架4功能(如对.NET框架的并行扩展和Windows Presentation Foundation)的完全访问支持。欲了解更多的信息,请参阅“.NET框架4”。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。