第一部分 学习函数式思维

第一部分学习函数式思维

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

不管哪种情况,学习函数式编程的第一件事,就是要建立不同于以往的基本概念。但这并不是说就得扔掉现有的知识,因为在 .NET 平台上的函数式编程很好地利用了面向对象的风格和已有的库。虽然基础不同,但是,我们可以建立在它们的上面,并回到熟悉的领域,以不同的角度看待。

在第一部分,我们将重点关注基本原理。

第一章,我们会考查一些原理的实际效果,但不涉及更多的细节。还会写出第一个 F# 程序,这样,你就可以在阅读期间,开始尝试独自使用 F#。

第二章,我们将更有系统地学习函数式编程背后的思想,讨论它如何改变我们编程的方法。在这一章的大部分示例代码,我们使用 C#,因为,许多函数式思维一样可以用在 C# 中。

第三章,更详细地讨论 F#,学习值、函数声明,和一些内置的数据类型。我们也会用 C# 来实现对应的类型和函数,对于 C# 开发人员来说,这是向他们解释 F# 原理最简单的方法。在本书后面实际的 C# 示例中,我们会重用其中的一些类型。

第四章,我们将用到目前为止所学的 F# 知识,开发一个图表应用。

第一部分 学习函数式思维,布布扣,bubuko.com

时间: 2024-12-21 12:03:01

第一部分 学习函数式思维的相关文章

第一章 不同的思维

第一章不同的思维 本章介绍 ■理解函数式编程 ■用函数式思想提高生产力 ■写出阵高效.可读性强的代码 ■实现第一个 F# 应用程序 函数语言非常富于表达,能用短小.简洁.具可读性的代码,实现强大的功能.之所有这些是可能的,是因为函数语言提供了更加丰富的方式,来表达抽象的概念.我们可以隐藏代码是"如何"执行的,只要指出所需的"结果",并且这样的(指出如何实现结果)代码只要写一次.由于具有丰富的抽象能力,我们可以把所有的复杂性隐藏在库函数中. 这种不同的编程方法深远地影

第一周学习总结

马原第一章学习总结 重点一:哲学基本问题 1. 哲学基本问题的内容 思维和存在的关系问题 2. 唯心主义两大派别 主观唯心主义和客观唯心主义 3. 唯物主义三个发展阶段(每个阶段的特征,对“物质”的理解) 一. 朴素唯物主义   认为物质即物质形态 二. 形而上学唯物主义   认为物质即原子 三. 辩证唯物主义    认为物质是标志客观实在的哲学范畴 重点二:物质与意识 1.    物质的定义:物质是标志客观实在的哲学范畴,这种客观实在是人通过感觉感知的,它不依赖于我们的感觉而存在. 2.意识的

用纯函数式思维在Java8下写的一段奇葩程序

首先说一下什么是纯函数式.在我的理解,"纯函数式"用一句话就可以描述:Anything is value.--我的理解不一定准确,但我就是这么理解的. 就是所有的东西都是值--没有变量:包括函数在内都是值--是值,就可以传递(包括函数). 为什么说这段程序是奇葩呢? 其一.传统的Java是面向对象的,自从Java8中加入了lambda,Java就变成了"面向对象"和"函数式"两种方式的混合语言.这段程序全部使用lambda的语法来写,与平常写的J

20145216 史婧瑶《信息安全系统设计基础》第一周学习总结

20145216 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 Linux基础 1.ls命令 ls或ls .显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的可以省略.我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录.其中“-a” 就是选项,改变了显示的内容.如图所示: 2.man命令 man命令可以查看帮助文档,如 man man : 若在shell中输入 man+数字+命令/函数 即可以查到相关的命令和函数:若不加数字,那man命令默认从数字较

《嵌入式设计》第一周学习总结

<嵌入式设计>第一周学习总结 学习时遇到的主要问题 1.运行环境未及时安装 2.命令不熟练 3.上课状态不好 解决方法 1.及时安装环境并熟悉运行 2.参考Linux操作系统实用教程并百度一些问题的解决办法 3.及时调整自己状态 主要学习内容 Linux一些简单基本的操作, 用.c文件输出hello word 用vi test.c 创建.c文件 #include <stdio.h> int main(){ printf("hello word\n"); } 并用

20145311 《信息安全系统设计基础》第一周学习总结

20145311 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 常用的部分命令 CTRL+SHIFT+T:新建标签页,编程时有重要应用: ALT+数字N:终端中切换到第N个标签页,编程时有重要应用: Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成: CTRL+C:中断程序运行 Ctrl+D:键盘输入结束或退出终端 Ctrl+S: 暂定当前程序,暂停后按下任意键恢复运行 Ctrl+A: 将光标移至输入行头,相当于Home键 Ctrl+E

20145201 《Java程序设计》第一周学习总结

# 20145201 <Java程序设计>第一周学习总结 ## 教材学习内容总结 万事开头难,终于开始学习了Java.寒假的时候看到老师的要求确实有点慌,但是这周翻开书,从书本知识第一行学起,发现并不是自己想想中那么难,只要一步一个脚印,每周有自己的计划,并按照计划按部就班的完成,最后一定会拥有自己的小成果的. 1.1Java不只是语言 Java经过多年的版本更新后,最新的版本是Java SE8. 在java发展的过程中,它的应用领域越来越广,根据不同级别的应用开发区分了不同的应用版本,最终j

20145326蔡馨熠《Java程序设计》第一周学习总结

20145326蔡馨熠 <Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之前c语言学得也不是特别好.可我就是对hdl和java特别感兴趣(之前在我的问卷调查报告里面提到过),并且寒假的时候在家里也预习了一部分java知识.第一周要求学习两个章节并作心得体会,虽然我早已看过前两章的知识,不过为了进一步巩固,我还是用了星期六一天的时间把第一章和第二章的知识从头到尾仔仔细细的看了

20145224-陈颢文 《Java程序设计》第一周学习总结

20145224 <Java程序设计>第一周学习总结 教材学习内容总结 通过第一周的学习让我对Java有了个初步的了解,知道了Java分为Java SE.Java EE.Java ME三大平台,其中Java SE是基础.Java的一大特点是它可以跨平台,而JVM对Java的跨平台提供了支持,它就类似于一个虚拟机,只要在当前平台安装了相应的JVM,Java程序就有了可以在此平台上运行的基础啦.JRE是Java的执行环境,在安装了JRE的计算机上就可以运行Java的程序了,当然光是可以跑代码对于程