第一章 简介
F# 是一种运行在.Net Framework上的类型化的函数式编程语言。它融合了简洁,易于表达等函数式编程的特点,而且还得到了运行时的支持,类库、互操作性、工具、以及.Net的对象模型等特性。我们的目标是通过这本书让你成为F#以及.NET Framework的专家。
函数式编程长期以来用它简单的形式以及强大的表达能力激励了无数的研究人员、学生以及程序员。函数式编程的应用已经日渐繁荣,一些函数式编程的模块已经整合到C#,Python,Visual Basic等语言中。现在已经由大量的函数式编程的实际应用。这里也有一些强有力的证据,例如函数式编程已经在很多领域里提升了应用程序的效率,例如数据存取,金融建模,统计分析,机器学习,软件认证,生物信息学等领域。最先进,函数式编程已经成为日渐增长的声明式编程语言的一部分,尤其是在数据查询,并行编程领域。
F# 和其它的函数式编程的一个很大的不同在于,它包含了指令式编程以及面向对象编程。它弥补了编译语言和动态语言之间的差异,联合了动态语言的再语法以及编程风格方面的效率以及编译式语言的稳定性。F# 的设计者有这样一个设计理念,那就是一方面允许你使用那些提高效率的语法以及规范,另外一方面又不失函数式编程技术的那些优点。本书将帮助你理解这种结合所带来的强大威力。
F# 和.Net 提供了一种学习计算的途径,这些将为你带来持久的兴奋和喜悦。而且掌握函数式编程技术,将使你成为一个更好的程序员,不管你曾经使用何种语言。对你来说没有比现在更好的时机去学习函数式编程,而且F# 也提供了在.Net 上学习和使用它的最佳路线。
Don Syme是F# 的主要设计者,同时也是本书的作者。本书在很多程度上得益于他在F# 和.Net 上的权威地位,而且,本书的所有作者也都有多年的F# ,以及其它语言的编程经验。
F#起源
F#始于2002年,当Don Syme和一些其他的微软研究院决定一起去确保找到一种数学语言,它能够有较强的实用性,同时,它也拥有比较好的理论基础。这最终使他们在.Net平台上好到了一种高效的表达方式。这个项目和.Net的运行时的早期设计和实现是紧密的联系在一起的。F#的第一个重要的发布是在2005年。
F#和Ocaml编程语言共享了一个语言内核,在某种意义上讲,也可以把F#当作是“.Net 上的OCaml”。如果没有OCaml的话,就没有F#。OCaml同样来自于编程语言的数学家庭,它的历史可以追溯到1974年。F#同样也继承了 Haskell的一些特性,其中两个重要的特性被称作序列表达式和工作流。无论是这两种语言的设计者还是它们的使用群体都有着很强的重叠和紧密的联系。 F#的设计原理以及那些重要的设计决定都记录在它的项目网页上。
尽管和OCaml以及Haskell十分相似,但是用F#编程的体验绝对和这两种语言是绝对不同的。例如,F#语言拥有类型引用,面向对象编程,动态语言等这些和主流的函数式编程截然不同的技术。用F#编程将会比其它的函数式编程语言相比,将会更加的面向对象。因此编程也就会更加的灵活。同样,F#也大量采用了一些.Net的属性,例如动态载入,动态类型,反射,另外它自己也增加了一些技术,例如表达式引用和动态模式。上述主题,我们在本书中都将会有覆盖,而且将会在很多代码示例中使用到。
F#同样得益于很多.NET的设计人员。他们的眼光都曾经专注于语言之间的互操作性,例如C++,VB以及最终成为了C#的语言,知道今天他们的这些努力还在对业界产生着巨大的影响。
F#今天同样从CLI中广泛的汲取了营养。CLI已经为Microsoft.Net, Mono以及微软的客户端执行环境Silverlight所实现。F#同样可以使用微软开发的众多的类库和技术,也可以为广泛的.NET社区以及以 Mono为核心的活跃的开源社区所开发接纳。这其中就包括数以百计的重要的类库以及一些重要的栈实现,例如整合式查询语言LINQ 。
关于这本书
本书主要分为两部分:第二章到第十章主要探讨F#语言,一些基础的技术以及和.NET Framework相关的类库。第十一章到第十九章主要讨论一些应用技术,设计从应用程序的构建到软件工程以及设计模式等。
本书旨在讲述编程结构和编程技术两方面。主要通过展示示例代码,并解释代码。我们会反复的通过讲解程序的结构,以及那些相似的你可能在实践中遇到的结构。我们发现示例驱动的讲解办法很容易的揭示出语言的本质,以及语言和语言的内部构成是如何协同工作的。你可以在附录中找到全部的语法参考和解释,我们也鼓励你在阅读本书的时候参考附录。
F# Expert——第一章
最新推荐文章于 2024-07-19 17:11:04 发布