第三部分 F# 高级编程技术

在第二部分,我们讨论了大多数函数语言常见的函数概念。现在可以说已经理解了函数式编程,就像在阅读了封装、继承和多态性以后,可以说熟悉面向对象编程一样;但要想成为有效的面向对象的开发人员,还需要学习其他内容,用 F# 进行函数编程也没有什么不同。

就像每种面向对象语言的功能各有特色一样,在 F# 中也有一些特有的功能,在其他函数语言中通常没有,当我们在第九章讨论有关对象的类型和成员时,会看到这方面的示例。在 .NET 世界中,F# 是一等公民(first-class citizen),能够使用和声明标准的 .NET 对象。我们将看到如何将标准的函数代码封装成对象,在迭代开发风格中,这往往是下一步要做的。对象提供更好的方法,实现代码的结构化,而且更容易从 C# 中使用 F# 函数。

我们还将讨论适合于函数式 F# 代码的最佳做法。在第十章,我们会探讨优化 F# 程序的方法。解释如何防范使用递归时的堆栈溢出,提供改进程序性能的技术。第十一章,我们将讨论重构(refactoring)和单元测试(unit testing),现在,有两种做法被认为是几乎任何语言或编程范式所必不可少的。特别是,我们会看到不可变性给两个领域带来的影响。

第十二章,我们将讨论用于处理序列和集合的更好方法,以及关于单子(monads)的概念,这在编程语言中是最神秘的术语,但是,它们实际上不那么复杂。在某种意义上,它就是一种设计模式,用更简单的片段组成代码,因此,单子的作者可以指定额外的方面或行为,由用户写的片段添加到其中。我们会将看到,我们一直在使用这种模式,只是没有明确说出来。

在读完本书的这一部分之后,一般情况下,就能够写出高效的函数程序,而且可以利用多种F# 特定的语言功能。我们将学习如何在.NET 平台使用函数编程,包括能够组合函数式、面向对象和命令风格的能力,而且能够使用标准技术来编写和测试代码。读完这部分以后,就可以成功找到一份 F# 程序员的工作;我们当然不是建议就跳过第四部分,它提供的示例组合了本书讨论的所有函数式技巧。

时间: 2024-11-03 18:41:04

第三部分 F# 高级编程技术的相关文章

《好学的C++ 第2版》 第9章 一些高级编程技术

转向C++0x和OOP之前,需要掌握其他一些技巧. C++命令行参数: main函数须这样定义: int main(int argc, char* argv[]){/*...*/}  //argc计数包括程序名,所以至少是1:argv[0]就是程序名.这两个参数可以任意使用,但是是只读的,可以随意显示或复制它们.程序中可以通过argc判断输入参数是否足够(例如大于1),通过argv判断各参数是否合法,合法的话存入其他变量使用:不合法的话提示输入后,存入其他变量中使用即可.MAX_PATH:系统能

【高级编程技术作业】第三周

5-2 5-6 5-8 5-9 5-11 6-1 6-5 6-9 原文地址:https://www.cnblogs.com/dhlee/p/python.html

C#高级编程技术复习一

从基本的Socket编程进入 (注意:这是转的一篇2011年的文章,有些知识可能该更新了!) 这一篇文章,我将图文并茂地介绍Socket编程的基础知识,我相信,如果你按照步骤做完实验,一定可以对Socket编程有更好地理解. 本文源代码,可以通过这里下载 http://files.cnblogs.com/chenxizhang/SocketWorkshop.rar 第一步:创建解决方案 第二步:创建服务端程序 这里可以选择“Console Application”这个类型,比较方便调试 然后编写

[GeekBand]C++高级编程技术(2)

本篇笔记主要分为两个主要部分,第一部分关于对象模型,第二部分是关于new和delete的更加深入的学习. 对象模型 关于vptr(虚指针)和vtbl(虚函数表) 只要用到了虚函数,对象中就会多一个指向虚函数表的虚指针.在32位环境下,将占4Bytes的空间. 在vtbl中,每一项都是指向自己类应当调用的虚函数的函数指针. 2.静态绑定与动态绑定 在C中,对于不同的函数名采用静态绑定的方法,每个函数直接对应了一个地址,存储在相应的位置中.在C++中,非虚的成员函数也用静态绑定的方式被存储.如上图中

【高级编程技术作业】第四周

7-1 7-2 7-3 7-6 7-7 8-1 8-2 8-5 原文地址:https://www.cnblogs.com/dhlee/p/8723688.html

【高级编程技术作业】第六周

11-1 11-2 11-3 原文地址:https://www.cnblogs.com/dhlee/p/8805933.html

【高级编程技术作业】第五周

9-1 9-2 9-3 9-5 9-7 10-3 10-4 10-5 10-6 10-7 原文地址:https://www.cnblogs.com/dhlee/p/8830554.html

《C++11/14高级编程Boost程序库探秘》之第1章全新的C++语言(三)学习记录

<C++11/14高级编程Boost程序库探秘>之第1章全新的C++语言(三)学习记录 1.7函数式编程 函数式编程是与面向过程编程.面向对象编程和泛型编程并列的一种编程范式,它基于λ演算理论,把计算过程视为数学函数的组合运算. 1.7.1 lambda表达式 基本形式为: [](params){...} []称为lambda表达式引出操作符,圆括号里是函数的参数,花括号内则是函数体,可以使用任何C++语句. lambda表达式的类型称为闭包,无法直接写出,所以通常需要使用auto的类型推导功

Linux - Unix环境高级编程(第三版) 代码编译

Unix环境高级编程(第三版) 代码编译 本文地址:http://blog.csdn.net/caroline_wendy 时间:2014.10.2 1. 下载代码:http://www.apuebook.com/code3e.html 2. 安装依赖库:sudo apt-get install libbsd-dev  3. 进入下载目录make 4. 复制头文件和动态链接库 sudo cp ./include/apue.h /usr/include/ sudo cp ./lib/libapue