电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

本次课讨论:流式计算流与序列延时求值无穷

本次课讨论:流式计算流与序列延时求值无穷_第1页
1/23
本次课讨论:流式计算流与序列延时求值无穷_第2页
2/23
本次课讨论:流式计算流与序列延时求值无穷_第3页
3/23
程序设计技术和方法裘宗燕,2 0 1 0 -2 0 1 1 /13. 模 块 化 , 对 象 和 状 态 (4)本次课讨论: 流式计算 流与序列 延时求值 无穷流 流的应用 时间的函数式观点 不同系统模拟方法(函数式、对象、流)的比较程序设计技术和方法裘宗燕,2 0 1 0 -2 0 1 1 /2时间和流 在用状态和赋值模拟的工作中,可以看到赋值带来的复杂性 本节考虑能否用其他方式模拟状态变化 希望能同时避免其中的一些复杂性问题 实际上,这里的复杂性的根源是现实世界中被模拟的现象前面的考虑是: 用有局部状态的计算对象模拟真实中的状态可能变化的对象 用计算机里的系统随着时间的变化模拟现实世界中的变化 通过对有局部状态的对象的赋值,实现计算机系统里的状态变化 现在考虑另一可能性:把一个随时间变化的量表示为一个随时间变化的函数x (t)。这样可得到两个层面的观察: 如果看 x 在一系列具体时刻的值,它是一个随时间变化的变量 如果看 x 的整个历史,它就是一个时间的函数,并没有变化程序设计技术和方法裘宗燕,2 0 1 0 -2 0 1 1 /3流 下面考虑离散时间上的函数 由于是离散时间的函数,可以用无穷长的序列模拟 这种序列称为流。可以用流来模拟状态的变化,模拟一个系统随时间变化的历史 为了做这种模拟,需要引进一种数据结构,也称为流(stream) 不能直接用表结构表示流,因为一般说流可能是无穷的 下面采用延时求值技术,用流表示任意长的序列(潜无穷长) 流技术可用于模拟一些包含状态的系统,构造一些有趣模型 不需要赋值和变动数据结构,因此可以避免赋值带来的问题 流不是万能灵药,使用上有本质性困难下面介绍这些方面情况程序设计技术和方法裘宗燕,2 0 1 0 -2 0 1 1 /4序列和表 前面讨论过用序列作为组合程序的标准接口,构造了许多有用的序列操作抽象,如map、filter、accumulate这些抽象用起来很漂亮 但是用表表示序列,得到好结果的同时可能付出严重的效率代价(空间和/或时间),因为每步操作都可能构造出很大的数据结构 用迭代风格计算一个区间中所有素数之和的过程:(define (sum-primes a b)(define (iter count accum)(cond ((> count b) accum)((prime? count) (iter (+ count 1) (+ count accum)))(else (iter (+ count 1) accum))))(iter a 0)) 用序列操作的组合写同...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

本次课讨论:流式计算流与序列延时求值无穷

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部