网站大量收购独家精品文档,联系QQ:2885784924

第5篇 函数式程序设计语言.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * 函数程序设计语言 * 程序设计语言范型 Programming Languages Paradigms 教师: 张荣华 计算机科学与技术学院 华北电力大学 函数式程序设计语言 Scheme语言数据抽象 第二部分 第五章 Scheme语言数据抽象 第五章 - * 回顾 任何强有力的程序设计语言都必须能表述基本的数据和过程,还需要提供对数据和过程进行组合和抽象的方法——摘自《计算机程序的构造和解释》 ⑴ 控制抽象(表达式层次、语句层次、程序单元层次) ⑵ 数据抽象(本章研究内容) Scheme语言数据抽象 第五章 - * 回顾 Scheme语言控制抽象(第五章 第二部分) 将一个过程的使用方式,与该过程究竟如何通过更基本的过程实现的具体细节相互分离的一种技术。 ① 基本数据(数); ② 基本过程(算数运算); ③ 用复合、条件、参数将过程组合起来形成复合过程; ④ 通过define、lambda做过程抽象; ⑤ 过程的计算模式(递归计算和迭代计算过程) ⑥ 高阶过程 Scheme语言数据抽象(第五章 第三部分) 讨论程序设计语言提供的将数据对象组合起来形成复合数据的方式。 Scheme语言数据抽象 第五章 - * 内容 1. 数据抽象导引 1.1 序对 1.2 有理数包的抽象屏障 2. 表结构 2.1 序列与闭包性质 2.2 表操作 2.3 表映射 3. 函数式语言高级抽象综合实例 Scheme语言数据抽象 第五章 - * 1. 数据抽象导引 数据抽象 将程序中处理数据对象的表示的部分,与处理数据对象的使用的部分相互隔离起来的一种技术。 例如:考虑线性组合:ax + by (define?(linear-combination?a?b?x?y)? ??(+?(*?a?x)?(*?b?y))) (define?(linear-combination?a?b?x?y)????? ??(add?(mul?a?x)?(mul?b?y))) 数据抽象的关键: 构造函数(“粘合剂”)+ 选择函数(“分离剂”) Scheme语言数据抽象 第五章 - * 实例:有理数的算术运算 假定: ①存在一种方法可以从分子和分母构造出有理数; ②存在一种方法可以从已经存在的有理数中分离它的 分子和分母。 (make-rat n d) (numer x) (denom x) //从分子n和分母d构造有理数并返回 //返回有理数x的分母 //返回有理数x的分子 构造函数 选择函数 Scheme语言数据抽象 第五章 - * 实例:有理数的算术运算 例如:实现两个有理数相加 Scheme语言数据抽象 第五章 - * 内容 1. 数据抽象导引 1.1 序对 1.2 有理数包的抽象屏障 2. 表结构 2.1 序列与闭包性质 2.2 表操作 2.3 表映射 3. 函数式语言高级抽象综合实例 Scheme语言数据抽象 第五章 - * 1.1 序对 Scheme语言提供的构造函数和选择函数 ⑴ 内部的基本过程:cons 模拟构造函数的功能,构造序对。 表结构:由序对构造起来的复合数据对象。 ⑵ 内部基本过程:car和cdr 模拟选择函数的功能,实现对序对的操作。 Scheme语言数据抽象 第五章 - * 内容 1. 数据抽象导引 1.1 序对 1.2 有理数包的抽象屏障 2. 表结构 2.1 序列与闭包性质 2.2 表操作 2.3 表映射 3. 函数式语言高级抽象综合实例 Scheme语言数据抽象 第五章 - * 1.2 有理数包的抽象屏障 使用有理数的程序 add-rat、sub-rat ... make-rat 、numer、denom cons、car、cdr 抽 象 抽 象 1 2 Scheme语言数据抽象 第五章 - * 内容 1. 数据抽象导引 2. 表结构 2.1 序列与闭包性质 2.2 表操作 2.3 表映射 3. 函数式语言高级抽象综合实例

您可能关注的文档

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档