第一章 不同的思维

第一章不同的思维

本章介绍

■理解函数式编程

■用函数式思想提高生产力

■写出阵高效、可读性强的代码

■实现第一个 F# 应用程序

函数语言非常富于表达,能用短小、简洁、具可读性的代码,实现强大的功能。之所有这些是可能的,是因为函数语言提供了更加丰富的方式,来表达抽象的概念。我们可以隐藏代码是“如何”执行的,只要指出所需的“结果”,并且这样的(指出如何实现结果)代码只要写一次。由于具有丰富的抽象能力,我们可以把所有的复杂性隐藏在库函数中。

这种不同的编程方法深远地影响着实际的应用程序。这种表达逻辑的方式使程序更可读,更容易理解,从而可以理解并修改以前不了解的代码。函数程序易于测试和重构。不过,尽管函数语言有这样的好处,现在为止,还是被主流开发人员极大地忽视了。今天,我们面临着新挑战,需要编写能处理大型数据集的程序,且可扩展到大量的处理器上,需要处理比以往任何时候都更大的系统,所以,我们要更好地掌控其复杂性。这些趋势打开了通往函数语言的大门,但这远不是使用函数式编程的唯一原因。

因此,现在有许多主流语言都包括一些函数式功能。在 .NET 家族中,C# 2.0 的泛型就深受函数语言的影响。函数语言的一个最基本功能,就是能够在需要时产生函数值,而不用事先声明。这相当于 C# 2.0 中的匿名方法,在C# 3.0 中,lambda 表达式使之更容易。整个 LINQ 项目的基础就是函数式编程。

随着主流语言的追赶,函数语言也真正受到了更多的关注。这方面最明显的例子就是 F#,从 Visual Studio 2010 开始,成为官方的、完全受支持Visual Studio 的语言。.NET 上函数语言的这种演变,很大程度上是由于有了通用语言运行库(common language runtime,CLR),它使开发人员能够:

■ 在开发 .NET 应用时,可以混合多种语言

■ 访问丰富的、来自新语言的 .NET 库函数,像 F#

在所有的 .NET 语言之间共享库函数,使得学习新的语言更容易了,因为你已经积累的、所有的平台知识,在新函数语言中仍可使用。

在本书中,我们将探讨最重要的函数式编程概念,并用 .NET 的实际示例来演示。我们将先讲解观念,然后,转到以函数方式开发大规模的、实用的 .NET 应用。在本书中我们将同时使用 F# 和 C# 3.0,因为有许多观念可以直接适用于 C# 编程。但是,并不是说一定特别需要用函数语言,才能使用函数概念和模式。但是,看一下 F# 代码写的示例,将有助于深入理解它的工作原理, F# 往往使表和实现解决方案更容易。

但是,我们已经抢跑了。毕竟,这是一本关于函数式编程的书,从讲解术语开始不是更好吗?

第一章 不同的思维,布布扣,bubuko.com

时间: 2024-08-02 03:42:04

第一章 不同的思维的相关文章

第一章软件开发概述思维导图

第一章软件开发概述思维导图

实体框架6.0(Recipes)翻译系列 1 -----第一章 开始使用实体框架1

微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF版本更新太快,没人愿意去花时间翻译国外关于EF的书籍.使用Entity Framework开发已经有3年多了,但用得很肤浅,最近想深入学习,只好找来英文书<Entity Framework 6 Recipes>慢慢啃.首先需要说明的是,我英文不好,只是为了学习EF.把学习的过程写成博客,一是督促自

重温《STL源码剖析》笔记 第一章

源码之前,了无秘密. --侯杰 经典的书,确实每看一遍都能重新收获一遍: 第一章:STL简介 STL的设计思维:对象的耦合性极低,复用性极高,符合开发封闭原则的程序库. STL的价值:1.带给我们一套极具实用价值的零部件,以及一个整合的组织. 2.带给我们一个高层次的以泛型思维为基础的.系统化的.条理分明的“软件组件分类学”. 在STL接口之下,任何组件都有最大的独立性,并以所谓迭代器胶合起来,或以配接器互相配接,或以所 谓仿函数动态选择某种策略. STL六大组件:1.容器(containers

《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述 (转)

微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF版本更新太快,没人愿意去花时间翻译国外关于EF的书籍.使用Entity Framework开发已经有3年多了,但用得很肤浅,最近想深入学习,只好找来英文书<Entity Framework 6 Recipes>第二版,慢慢啃.首先需要说明的是,我英文不好,只是为了学习EF.把学习的过程写成博客,一

第一部分 基础篇 第一章 走进MongoDB

声明:该文章主要来自<MongoDB实战>一书内容,主要想通过该书学习MongoDB的相应知识,加深理解,故写在自己的博文当中,作为记录在最后的章节中,会有一个自己集合MongoDB数据库应用的JavaEE的web应用. 第一章 走进MongoDB MongoDB是一个高性能.开源.无模式的文档型数据库,是当前NoSQL数据库产品中最热门的一种,它在许多场景下可用于替代关系型数据库或者键/值存储方式,MongoDB使用C++开发,MongoDB的官网是地址是:http://www.mongod

第一章 初始C++

第一章 初始C++ 1. c++简介 C plus plus 1969年 BCPL(basic combined programming language) 1973年 肯·汤普森(Ken Thompson).丹尼斯·利奇(Dennis Ritchie) 1983年 比雅尼·斯特劳斯特鲁普Bjarne Stroustrup 1989年 ANSI(American national standard institute) ISO(International standard organizatio

[读书笔记]算法(Sedgewick著)·第一章(1)

到家放松之后就开始学习算法了,手里拿的是拿的是一本Robert Sedgewick的橙皮书<算法(第四版)>的.这本书与导论那本书的不同之处在于轻数学思想.重实现,也就是说这是一本很不错的基础编程书.拿来做书中的练习还是蛮不错的,封面说有50种算法哦.思维导图如下,就且学且更新吧. 1.基本编程模型 第一章开始讲述用程序实现算法的优点:程序是对算法精确.优雅和完全的描述:可以通过运行程序来学习算法的各种性质:可以在应用程序中直接使用这些算法.还有这种学习算法的缺点缺点:分离思想和实现细节的困难

第一部分 学习函数式思维

第一部分学习函数式思维 捡起这本书的原因可能很多.可能是在学习 LINQ 和 C# 3.0,或者受此影响的别的技术时,听到过函数式编程,你想知道它是否有还其他意思:也可能听说过函数式编程可以使写并行或异步程序更容易:也许听说过函数风格的其他有趣应用,比如,如何写出没有可变状态的程序:还可能已听说过一种叫 F# 的新语言,将会成为 Visual Studio 2010 的一部分,你可能想知道它到底提供了什么. 不管哪种情况,学习函数式编程的第一件事,就是要建立不同于以往的基本概念.但这并不是说就得

读《构建之法:现代软件工程》第一章有感

在阅读了<构建之法:现代软件工程>第一章绪论后,我软件工程有了一定的了解,同时以一名机械学生为立场也有所感悟. 以前我只是简单的认为软件就是一个应用,你只需要去点击.exe文件就可以使用这个软件.而在阅读了邹欣老师的<构建之法:现代软件工程>后,我懂得软件=程序+软件工程,我们现在不应再停留于软件的用户体验.交互界面,更应该看到软件背后支撑它的程序代码等.软件工程是一个学科交叉的过程,它与许多学科都相关:计算机科学.计算机工程.管理学.数学.项目管理学.质量管理.软件人体工学.系统