《函数程序设计及其应用》简介

上传人:j****9 文档编号:47366076 上传时间:2018-07-01 格式:PDF 页数:3 大小:112.24KB
返回 下载 相关 举报
《函数程序设计及其应用》简介_第1页
第1页 / 共3页
《函数程序设计及其应用》简介_第2页
第2页 / 共3页
《函数程序设计及其应用》简介_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《《函数程序设计及其应用》简介》由会员分享,可在线阅读,更多相关《《函数程序设计及其应用》简介(3页珍藏版)》请在金锄头文库上搜索。

1、 课程名称: 函数程序设计及其应用 授课对象: 无限制 学时: 3 学时/周 任课教师:乔海燕 联系电话:31981361 Email: 函数程序设计及其应用 简介 C/C+, Java, Pascal 和 Ada 等称为命令式语言, 即一个程序是一个顺序执行 的指令序列。一个命令式程序说明的重点是如何做计算。一个函数程序是一个从输入 集到输出集的数学函数:对于给定的输入,它的输出是什么。一个函数程序的执行是 通过给函数以输入,并计算将函数应用输入的表达式的值(即输出)来完成的。 一个 函数程序说明的重点是应该计算什么,而不是如何计算。函数程序没有副作用,因此 函数程序的测试与推理较命令式程

2、序容易的多。例如,QuickCheck 是一个非常简单的 随机测试工具,Agda/Alfa 是基于类型论的程序辅助证明工具。Haskell 的另一特点是 适用于作 host 语言,即将其他语言嵌入到 Haskell 中,以增加系统的可读性,易维护 性和生产效率。 函数程序设计的计算模型非常简单。 因此, 函数程序语言以其清晰、 简洁、 易读, 因而更易维护而受到学术界的青睐和工业界的欢迎。比如,学术界的大量实验系统采 用函数程序设计语言开发。通讯业巨人爱立信用本公司设计的函数程序设计语言 Erlang 开发交换机系统,获得巨大成功。Intel 使用函数程序语言开发硬件验证系统, 搜索引擎大亨

3、Google 也使用函数程序设计技术,提高了系统的可靠性与易维护性。 函数程序设计语言因其简单的基本理论,现代程序设计的基本思想,如抽象、数 据抽象、多态和重载等都得到了最清楚的体现。因此,函数程序设计不仅是学习现代 程序设计思想的理想语言(西方许多高校将其作为第一门程序设计语言介绍给学生), 而 且为传统的命令式和面向对象的程序设计语言提供了很有意义的视角。 本课程将使用 Haskell 作为教学语言,并通过一些实例,如交互式计算器、 Huffman 编码,语法分析器,图形与音乐的嵌入等,介绍函数程序设计的基本概念和 方法。Haskell 是一种实用程序设计语言,详见 www.haskell

4、.org。关于 Haskell 的教学, 参见 http:/haskell.org/haskellwiki/Haskell_in_education。关于 Haskell 的应用,参见 http:/haskell.org/haskellwiki/Haskell_in_practice。有关每年举办一次的国际程序设计竞 赛,参见 http:/www.icfpcontest.org/。 本课程设计为 3 学分,每周 3 学时,并将尝试所有教学活动在实验室进行。 学分数 3 周学时数 3 预修课程:无特殊要求 教学目的:通过本课程的教学, 学生掌握函数程序设计思想和方法,并且更深入理解 现代程序设计

5、思想和方法。课程学习结束后,学生能够熟练使用 Haskell 进行高效、高质量软件代码设计,解决实际问题。 基本要求:按大纲具体要求,掌握函数程序设计的基本概念、原理和方法;熟练掌握 常用函数的应用;掌握函数程序的测试方法;能够运用 Haskell 解决实际问题。 教学用书:Simon Thompson: The Craft of Functional Programming. Second Edition, Addison-Wesley, 1999.及其中译本电子版。 参考用书:1. Richard Bird: Introduction to Functional Programming u

6、sing Haskell. 2nd edition. Addison-Wesley, 1999. 2. Fethi Davie and Guy Lapalme: algorithms: A functional programming approach. Addison-Wesley, 1999. 3. Paul Hudak: The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press, 2000. 参考网站:http:/www.

7、haskell.org 教学内容和学时安排: 一 函数程序设计简介 2 学时 二 Haskell 解释器 Hugs 3 学时 三 基本类型和定义 3 学时 四 程序设计与测试 3 学时 五 数据类型:多元组与列表 3 学时 六 列表的编程 3 学时 七 程序的推理 3 学时 八 概括:计算的模式 3 学时 九 高阶函数 3 学时 十 过载和类 3 学时 十一 类型检验 2 学时 十二 代数类型 3 学时 十三 Huffman 编码 3 学时 十四 抽象数据类型 3 学时 十五 惰性程序设计 3 学时 十六 动作的编程 3 学时 十七 图形与音乐 5 学时 总学时数: 54 学时 附附附附:下面

8、是快速排序算法的 Haskell 程序和 C 程序比较: Quicksort in HaskellQuicksort in HaskellQuicksort in HaskellQuicksort in Haskell qsort = qsort (x:xs) = qsort elts_lt_x + x + qsort elts_greq_x where elts_lt_x = y | y = x Quicksort in C Quicksort in C Quicksort in C Quicksort in C void qsort(int a,int lo, int hi) int h, l, p, t; if (lo l) if (l h) t = al; al = ah; ah = t; while (l h); t = al; al = ahi; ahi = t; qsort( a, lo, l-1 ); qsort( a, l+1, hi );

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号