什么是F#?

来自软件开发
跳转至: 导航搜索

函数编程是解决许多棘手问题的最好方法,但是,纯函数编程并不适合常规编程。因此,函数编程语言逐渐吸收了命令式、面向对象的编程模式,不仅保持了函数编程范式,同时也混合了其他需要的功能,使函数编程编写各种类型的程序都很容易。F# 就是这种尝试的成功代表,比其他函数编程语言做得更多。

一些流行的函数编程语言,如OCaml、Haskell、Lisp 和Scheme,一直都使用自己的运行时,使程序缺乏互操作性。F# 是一种通用编程语言,使用.NET 的通用运行时,平滑地集成了三种主要的编程模式,这样,可以选择最好、最有效的模式去解决问题。既可以用优函数编程模式、也可以在同一个程序中组合函数、命令、面向对象风格,利用各自的优势。像其他的函数语言一样,F# 也是强类型,而且有智能提示。因此,程序员不需要太多的时间用来打字,除非存在歧义。此外,F# 与.Net 框架的基础类型库(Base Class Library,BCL)无缝集成。在 F# 中使用基础类型库与在 C# 或Visual Basic 中同样简单,甚至更加简单。

F# 是成功的面向对象的函数编程语言,以 OCaml为模板,并经调整、扩展使之在理论与技术上能很好地和 .Net 相适应,因此,F# 完全包含.Net,.Net 能做的工作它都能做。F# 编译器能编译通用语言基础架构(Common Language Infrastructure,CLI)的所有内容,不用改变任何代码就能支持 .Net 泛型,甚至还有内置的中间代码(Intermediate Language,IL)。F# 编译器不仅能编译任何CLI 程序,还能运行在任何有CLI的环境中,就是说,F# 并不只限于在Windows 环境下运行,还能运行在Linux、Apple Mac OS X、OpenBSD上(第二章将讨论在Linux 上运行F#)。

F# 编译器随 Visual Studio 2010一起发布,也可以作为Visual Studio 2008 的一个插件。它支持表达式的智能感知和自动检查,以及为表达式提示推断出的类型。这些都有助于语言的使用、推广。

F# 由剑桥的微软研究院(MicrosoftResearch,MSR)的Don Syme 博士发明的,现在,位于雷德蒙德的微软公司也接受了这个项目,F# 编译器以及与Visual Studio 的集成由两地的小组共同开发。

虽然还有其他运行在.Net 上的函数编程语言,但F# 已经成为事实上的.Net 函数编程语言,这完全得益于它实现的质量以及与 .NET 和Visual Studio 很好的集成。

还没有其他的语言像F# 一样容易使用、具有灵活性。