在前面的章节中我们介绍了List,也讨论了List的数据结构和操作函数。List这个东西从外表看上去挺美,但在现实中使用起来却可能很不实在。为什么?有两方面:其一,我们可以发现所有List的操作都是在内存中进行的,要求List中的所有元素都必须在操作时存在于内存里。如果必须针对大型数据集进行Lis....
分类:
其他好文 时间:
2015-03-17 23:07:34
阅读次数:
157
求 $L^p(\bbR)$,\ $1\leq p<\infty$; $C[0,1]$; $C_0(\bbR)$ 的共轭空间
分类:
其他好文 时间:
2015-03-16 14:14:46
阅读次数:
157
延后计算(lazy evaluation)是指将一个表达式的值计算向后拖延直到这个表达式真正被使用的时候。在讨论lazy-evaluation之前,先对泛函编程中比较特别的一个语言属性”计算时机“(strict-ness)做些介绍。strict-ness是指系统对一个表达式计算值的时间点模式:即.....
分类:
其他好文 时间:
2015-03-16 09:50:25
阅读次数:
133
上节我们介绍了新的数据类型Option:一个专门对付异常情况出现时可以有一致反应所使用的数据类型。Option可以使编程人员不必理会出现异常后应该如何处理结果,他只是获得了一个None值,但这个None值与他所期待的类型是一致的,他可以继续用处理这种类型数据的方法使用这个结果。不过遗憾的是我们通过None值只能知道某个计算没能得出结果,但到底发生了什么事Option并没有提供任何提示。这样我们也就...
分类:
其他好文 时间:
2015-03-15 12:31:25
阅读次数:
146
上节我们介绍了新的数据类型Option:一个专门对付异常情况出现时可以有一致反应所使用的数据类型。Option可以使编程人员不必理会出现异常后应该如何处理结果,他只是获得了一个None值,但这个None值与他所期待的类型是一致的,他可以继续用处理这种类型数据的方法使用这个结果。不过遗憾的是我们通.....
分类:
其他好文 时间:
2015-03-15 12:07:34
阅读次数:
145
Option是一种新的数据类型。形象的来描述:Option就是一种特殊的List,都是把数据放在一个管子里;然后在管子内部对数据进行各种操作。所以Option的数据操作与List很相似。不同的是Option的管子内最多只能存放一个元素,在这个方面Option的数据操作就比List简单的多,因为使.....
分类:
其他好文 时间:
2015-03-14 00:59:27
阅读次数:
143
上节介绍了泛函数据结构List及相关的泛函编程函数设计使用,还附带了少许多态类型(Polymorphic Type)及变形(Type Variance)的介绍。有关Polymorphism的详细介绍会放在typeclass讨论中。为了更多了解泛函数据结构(Functional Data Stru.....
分类:
其他好文 时间:
2015-03-12 13:12:18
阅读次数:
138
折叠算法是List的典型算法。通过折叠算法可以实现众多函数组合(function composition)。所以折叠算法也是泛函编程里的基本组件(function combinator)。了解折叠算法的原理对了解泛函组合有着至关紧要的帮助。折叠算法又可分右折叠和左折叠。我们先从右折叠(foldR.....
分类:
编程语言 时间:
2015-03-11 21:19:24
阅读次数:
149
#include #include #include #include using namespace std;// 自定义泛函数template void PRINT_ELEMENTS(const T& coll, const char * str=""){ typename T::cons...
分类:
其他好文 时间:
2015-03-11 19:40:30
阅读次数:
154
List是一种最普通的泛函数据结构,比较直观,有良好的示范基础。List就像一个管子,里面可以装载一长条任何类型的东西。如需要对管子里的东西进行处理,则必须在管子内按直线顺序一个一个的来,这符合泛函编程的风格。与其它的泛函数据结构设计思路一样,设计List时先考虑List的两种状态:空或不为空两.....
分类:
其他好文 时间:
2015-03-10 22:59:45
阅读次数:
182