摘要: 上两节我们建了一个并行运算组件库,实现了一些基本的并行运算功能。到现在这个阶段,编写并行运算函数已经可以和数学代数解题相近了:我们了解了问题需求,然后从类型匹配入手逐步产生题解。下面我们再多做几个练习吧。在上节我们介绍了asyncF,它的类型款式是这样的:asyncF(f: A => B): A... 阅读全文
posted @ 2015-04-13 22:45 雪川大虫 阅读(1021) 评论(3) 推荐(2)
摘要: 上节我们讨论了并行运算组件库的基础设计,实现了并行运算最基本的功能:创建新的线程并提交一个任务异步执行。并行运算类型的基本表达形式如下: 1 import java.util.concurrent._ 2 object Par { 3 type Par[A] = ExecutorServic... 阅读全文
posted @ 2015-04-12 00:36 雪川大虫 阅读(1057) 评论(2) 推荐(1)
摘要: 作为专业的编程人员,我们经常会因为工作需要建立一些工具库。所谓工具库就是针对工作上经常会遇到的一些共性问题预先编制的由一整套函数所组成的函数库。通常这些工具库的功能都是在特别定制的一些数据类型支持下由一系列函数围绕着这些数据类型进行运算而实现的。在泛函编程范畴内也不例外。但在泛函工具库里的函数则... 阅读全文
posted @ 2015-04-04 13:14 雪川大虫 阅读(1087) 评论(0) 推荐(1)
摘要: 对OOP编程人员来说,泛函状态State是一种全新的数据类型。我们在上节做了些介绍,在这节我们讨论一下State类型的应用:用一个具体的例子来示范如何使用State类型。以下是这个例子的具体描述:模拟一个自动糖果贩售机逻辑:贩售机有两种操作方法:投入硬币和扭动出糖旋钮。贩售机可以处于锁定和放开两... 阅读全文
posted @ 2015-03-27 23:13 雪川大虫 阅读(1006) 评论(0) 推荐(0)
摘要: 初接触泛函状态觉着很不习惯。主要是在使用State数据类型时很难理解其中的原理,特别是泛函状态变迁机制(state transition mechanism):怎么状态就起了变化,实在难以跟踪。我想这主要是因为状态变迁机制经过了函数组合,已经深深的埋藏在运行代码后面。上节我们讨论到RNG,对于了... 阅读全文
posted @ 2015-03-26 19:06 雪川大虫 阅读(1839) 评论(0) 推荐(0)
摘要: 对于OOP程序员来说,泛函状态变迁(functional state transition)是一个陌生的课题。泛函状态变迁是通过泛函状态数据类型(functional state)来实现的。State是一个出现在泛函编程里的类型(type)。与其它数据类型一样,State同样需要自身的一套泛函操... 阅读全文
posted @ 2015-03-25 12:13 雪川大虫 阅读(1396) 评论(0) 推荐(1)
摘要: 虽然明白泛函编程风格中最重要的就是对一个管子里的元素进行操作。这个管子就是这么一个东西:F[A],我们说F是一个针对元素A的高阶类型,其实F就是一个装载A类型元素的管子,A类型是相对低阶,或者说是基础的类型。泛函编程风格就是在F内部用对付A类的函数对里面的元素进行操作。但在之前现实编程中确总是没... 阅读全文
posted @ 2015-03-24 10:44 雪川大虫 阅读(1143) 评论(1) 推荐(0)
摘要: 上节我们提到Stream和List的主要分别是在于Stream的“延后计算“(lazy evaluation)特性。我们还讨论过在处理大规模排列数据集时,Stream可以一个一个把数据元素搬进内存并且可以逐个元素地进行处理操作。这让我不禁联想到我们常用的数据搜索读取方式了:大量的数据存放在数据库里... 阅读全文
posted @ 2015-03-19 12:12 雪川大虫 阅读(1597) 评论(0) 推荐(1)
摘要: 在前面的章节中我们介绍了List,也讨论了List的数据结构和操作函数。List这个东西从外表看上去挺美,但在现实中使用起来却可能很不实在。为什么?有两方面:其一,我们可以发现所有List的操作都是在内存中进行的,要求List中的所有元素都必须在操作时存在于内存里。如果必须针对大型数据集进行Lis... 阅读全文
posted @ 2015-03-17 21:36 雪川大虫 阅读(1516) 评论(1) 推荐(1)
摘要: 延后计算(lazy evaluation)是指将一个表达式的值计算向后拖延直到这个表达式真正被使用的时候。在讨论lazy-evaluation之前,先对泛函编程中比较特别的一个语言属性”计算时机“(strict-ness)做些介绍。strict-ness是指系统对一个表达式计算值的时间点模式:即... 阅读全文
posted @ 2015-03-16 09:29 雪川大虫 阅读(3115) 评论(0) 推荐(0)