Underscore.js是一个很精干的库,压缩后只有4KB。它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了JavaScript的编程。MVC框架Backbone.js就将这个库作为自己的工具库。除了可以在浏览器环境使用,Underscore.js还可以用于Node.js。 U...
分类:
其他好文 时间:
2014-12-04 22:49:09
阅读次数:
182
GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而
GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Compiler...
分类:
系统相关 时间:
2014-12-03 15:49:56
阅读次数:
181
8.2.2 命令设计模式(The command design pattern)
命令模式(commandpattern)所描述的方法,表示在应用程序中的动作,相对于前一个模式,它常用于参数化已知的行为(比如,筛选列表)但缺少部分(条件),而命令模式经常保存某些“工作单元”,能够在以后调用。我们经常看到命令集合,用来描述用户可以选择处理或操作的步骤。看一下图8.2,就会认识到,接口看起来像...
分类:
其他好文 时间:
2014-12-02 16:40:43
阅读次数:
198
8.2 用于处理函数的习惯用语
在前一章,我们讨论了数据结构和相关的设计模式,看到结构模式的两个的示例,与设计函数式数据结构的问题相关,还讨论了行为模式,用于描述对象如何进行通信,在函数术语中,它相当于函数之间如何彼此调用。
在本章,我们将讨论面向行为的应用程序,因此,很自然地,相关的模式将是行为模式,其中第一个称为策略模式(strategy pattern)。...
分类:
其他好文 时间:
2014-12-02 11:52:21
阅读次数:
123
8.2.1 策略设计模式(The strategy design pattern)
在运行时,如果应用程序需要在几种算法之间,或一种算法的不同部分之间进行选择的话,策略模式是非常有用的。一种常见的情况是,当我们的应用程序需要执行的几个任务,只在很小的子任务上是不同的。使用策略模式,对于任务的公用部分,我们只要写一次,加上参数化,子任务(原始操作)作为它的参数值。图 8.1 显示了用面向对象...
分类:
其他好文 时间:
2014-12-02 11:51:50
阅读次数:
134
8.1.4 在 F# 中使用函数列表
首先,我们声明一个表示有关客户信息的类型;客户有很多属性,因此,用F# 的记录类型表示最自然的选择,我们在前一章已经看过。清单 8.4 显示了类型声明,和所创建样本客户的代码。
清单 8.4 Client 记录类型和样本值 (F# Interactive)
> type Client =
{ Name : string; Inco...
分类:
其他好文 时间:
2014-12-02 10:37:42
阅读次数:
190
函数式编程的核心特色之一是把函数作为参数传递给函数、在函数内部可以定义函数等。? 1,动手实战Scala高阶函数 声明一个List集合实例: ? List集合所在的包已经被预定义自动导入,所以此处不需要导入包,同时,...
分类:
其他好文 时间:
2014-12-02 00:25:44
阅读次数:
173
函数式编程的核心特色之一是把函数作为参数传递给函数、在函数内部可以定义函数等。1,动手实战Scala高阶函数声明一个List集合实例:List集合所在的包已经被预定义自动导入,所以此处不需要导入包,同时,这里直接使用List实例化对象,其实是用来List的object对象的apply方法;我们使用m...
分类:
其他好文 时间:
2014-12-02 00:01:29
阅读次数:
270
8.1.3 在 C# 中使用函数集合
考虑对客户进行贷款时,我们想要执行所有测试,并统计返回 true 的测试数(指高风险)。如果数为零个或一,程序就建议贷款。通常常的命令式解决方案是,声明一个变量,使用 foreach 语句枚举测试;在循环体内,执行测试,如果返回 true,变量就增加;使用 LINQ的扩展方法 Count,实现可以更优雅(清单 8.3)。
清单 8.3 执行测试...
8.1.2 在 C# 中把行为表示成函数
我们前面提到过,以面向对象的方式理解函数,就是把它认为是有一个单独方法的接口;从清单 8.1 的代码中,我们可以看到IClientTest 就是这样声明的。这样,测试可以很容易地表示成简单的函数;在 C# 中,我们可以使用lambda 函数来写测试:
Func isRiskyYearsInJob=
client => client....