- 2
- 0
- 约1.29万字
- 约 50页
- 2017-12-20 发布于天津
- 举报
第11章函数式程序设计语言-程序设计语言原理.ppt
5.3.5 输出问题 利用数据对象内部原有的顺序 结构对象是第一类对象, 语言支持的任何形式(交互、非交互)的输出都可以用在表和元组上。Miranda就是用无限表动态实现的 无限表尾不表示任何值, 它是函数对象, 每当调用到它时, 它按规定计算表头值, 并构造 一新的函数对象放在表尾, 以便再展其它项, 它就是新的无限表尾的头, 这个过程一直延续到需要的表长已达到。 输入输出流就是一个值的无限表, 每次处理输入流一个新值就附在表尾并为程序访问。同样, 也用无限表模型输出流。 5.4 函数式语言Miranda 简单的Miranda手本 Miranda λ演算 sq n = n * n sq = λn. * n n z=sq x/sq y z=/(sq x)(sq y) Miranda的基本类型有字符(char类型, 加单引号的字母), 真值(bool类型, 值为True和False)和数(num 类型, 包括整数、实数), 数据结构只有表和元组, 串是字符表 11.4.1 数据结构 元组(tuple) 树类型定义 tree::= Leaf Integer | Node tree tree [1] leaf1 = (Leaf 3) [2] tree1 = (Node leaf1 (Node (Leaf 17) (Leaf 49))) [3] 3 3 17 49 leaf 1 tree 1 leaf 1 第[2]行执行后 第[3]行执行后 多态函数定义及调用 设函数 max_tree 为求树中叶子值最大 max_tree (Leaf ldata) = ldata [1] max_tree (Node n1 n2) = max1, max1 max2 [2] = max2, max2 max1 [3] = max1, otherwise where max1 = (max_tree n1) [4] max2 = (max_tree n2) [5] 如有应用: (max_tree leaf1) //结果值为3, leaf1用上例 (max_tree tree1) //结果值为49,tree1用上例 表(list) Miranda表的表示法 [ ] //空表 [1..n] //1到n,域表示 odd_number = [1,3,..100] //1到100内奇数表,头两项及最后项必写 eleven_up = [11...] //10以上, 无限表表示 evens = [10,12...100] //10以上偶数表至100,头两项及最后项必写 evens_up = [12,14...] //10以上偶数无限表, week _days = [“Mon”,“Tue”,“Wed”,“Thur”,“Fri”] //五个串值的表 5.4.2 内定义操作 Miranda定义了常规的算术运算符(+、-、*、/、div、mod)并按中缀表示使用。故内定义了一些有用的表操作: L1 ++ L2 // 表L2并接到表L1的末尾 item:List // 将项item加到表List的头前 List ! n // 从表List中选取第n项 L1 -- L2 // 从表L1中剔出L2的值 #List //返回表List的项(基)数 5.4.3 定义函数 Miranda把函数定义叫方程(equation)。 例: 斐波那契数的函数定义, 用卫式表达式实现递归 Fibonacci n = 1, n=0 = 1, n=1 = Fibonacci (n-1)+Fibonacci (n-2
您可能关注的文档
- 神经质和社会支持对大学生心理弹性的影响.PDF
- 福建省气瓶充装许可申请书-三明市质量技术监督局.doc
- 福建省液化石油气储配站规范化管理考核细则-漳州市燃气管理处.doc
- 离合器、变速器.ppt
- 离心率对椭圆形状的影响.ppt
- 离散化,获得脉冲传递函数D(z).ppt
- 离散数学(上).ppt
- 离散时间系统的数学模型差分方程.ppt
- 种三角梅对干旱胁迫的响应.doc
- 种双面周期开槽型可调太赫兹带通滤波器-光子学报.PDF
- 2026及未来5年中国电磁铁行业市场发展监测及投资战略咨询报告.docx
- 2026及未来5年中国建筑工程机械行业市场发展监测及投资战略规划报告.docx
- 2026及未来5年中国硫化镍行业市场调研分析及投资战略规划报告.docx
- 2026及未来5年中国烷化剂市场运营态势及发展前景预测报告.docx
- 2026年涤纶细旦长丝项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年弓型虫抗体试剂项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年拖链系统用高柔性数据传输电缆项目可行性研究报告(市场数据调查、监测研究).docx
- 2025年中国水晶圆盘市场调查研究报告.docx
- 2025年中国长网双辊挤浆机市场调查研究报告.docx
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
最近下载
- 2026年长沙电力职业技术学院单招职业技能考试参考题库附答案详解.docx VIP
- 陈敏恒 化工原理 第5版 课后习题答案.docx VIP
- TCAEPI43-2022 电絮凝法污水处理技术规程.pdf VIP
- 2025年中国PE_VC基金行业CFO白皮书-.pdf VIP
- 芦笋种植方案.pptx VIP
- 预防医学导论课程教学大纲.docx VIP
- 矿物加工总论.pdf VIP
- 九年级下学期数学教学计划和培优补差.docx VIP
- 【英语】河南省天一大联考·2024-2025学年高三考前模拟考试含答案或解析.pdf VIP
- ISO IEC 27005-2022 信息安全、网络安全和隐私保护—信息安全风险管理指南(2022)(推荐下载).pdf VIP
原创力文档

文档评论(0)