- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数式程序设计语言教程
1、概论 面向过程程序设计 面向对象程序设计 函数式程序设计 2、什么是函数式程序设计 In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. —— From wikipedia 函数式程序设计是一种程序设计模型,它将计算机运算看作是数学中函数的计算,并且避免了状态以及变量的概念。 3、变量的不变性 如果有多个进程在同时跑这一个程序, 那么程序应该先desposit 还是先 despositTwice? 无论多少个进程在跑,因为我们本身没有赋值操作,所以都不会影响到我们的最终结果。 采用这样的方式没有办法保持状态,这也就是我们在之前概念中看到的无状态性。 程序设计能从冯·诺依曼式的设计风格中解放出来吗? 函数式程序设计及其程序代数 John Backus于1977年接受ACM图灵奖时的讲演稿 4、冯·诺依曼和函数式程序的比较 求内积的冯·诺依曼程序 该程序值得注意的几个性质: 1) 程序中的语句以某种复杂的规则作用在不可见的“状态”上。 2) 程序不是层次性的,除了赋值语句的右部外。 3) 程序是动态和重复的。 4) 程序是通过对变量i的修改和赋值语句的重复而逐字计算的。 5) 部分数据(如n)是局部于程序的,因而缺少通用性。 6) 程序命名了其中的量, 因而只对名为a 和b 的向量有效。 7) 程序的“内务” 操作是用分散在几处的符号来表示的。 求内积的函数式程序 Def Innerproduct ≡ (Insert +)·(Apply To All × )·Transpose 或简写为Def IP ≡ ( / + )·( α× )·Trans 将已知函数组合成新函数的函数型。 f·g 是先作用g再作用f所得的函数。αf是把f作用到每个分量上的函数。 f : x 表示把f作用到对象x上所得的结果 Def IP ≡ ( / + )·( α × )·Trans IP: 1, 2, 3, 6, 5, 4 = (IP的定义) = ( / + ) · ( α × )·Trans: 1, 2, 3, 6, 5, 4 ( · 的作用) = ( / + ) :( ( α × ) : ( Trans: 1, 2, 3, 6, 5, 4 ) ) (Trans的作用) = ( / + ) :( ( α × ) : 1, 6, 2, 5, 3, 4 ) ( α 的作用) = ( / + ) : × : 1,6 , ×: 2, 5 , ×: 3, 4 ( × 的作用) = ( / + ): 6, 10, 12 ( / 的作用) = +: 6, +: 10, 12 ( + 的作用) = +: 6, 22 ( + 的作用) = 28 Def IP ≡ ( / + )·( α × )·Trans 和冯·诺依曼程序的比较: 1) 该程序只作用在单个变元上, 没有隐含的状态及状态转换规则。 2) 该程序具有层次性, 它由三个较简单的函数( + , × , Trans ) 和三个函数型f·g,αf和/f构成。 3) 该程序是静态和非重复的, 无需考虑其执行情况。 4) 该程序作用在整个概念单位上, 而不是作用在单个的字上, 它可分为三步, 但没有一步是重复的。 5) 该程序本身不涉及任何数据, 它是完全通用的, 对任何相容向量对都有效。 6) 该程序对所作用的变元不命名, 因而无需过程说明或复杂的代入规则就能作用到任一向量对上去。 7) 该程序中所用到的“内务” 函数及函数型在其它许多程序中也是通用的。 5、FP系统 “程序”只是没有变量的函数。 FP系统是建立在使用一固定的函数型集合的基础上的。这些函数型再加上一些简单的定义,是由已知函数构造新函数的唯一手段。它们不涉及到变量和代入规则的使用,而是与程序相伴的代数的运算。 FP系统的所有函数都是同一类型的, 即从对象到对象的单一映射。 1 ) 对象集合O; 2 ) 把对象映射成对象的函数f的集合F ; 3 ) 一个运算, 即作用; 4 ) 函数型的集合F , 函数型的作用是将F中的已知函数或对象组合成新的函数; 5 ) 定义集台D , 它用来足义F 中的某些函数, 并且对每个函数指定一个名; 底元⊥ 6、FP系统的组成 7、函数式程序的性质 函数式程序对其作用对象或中间结果不命名, 它不含变量, 没有循环, 没有控制语句, 也没有过程说
您可能关注的文档
最近下载
- 电路电流练习.doc VIP
- 安全生产标准重大危险源管理人员培训记录.docx VIP
- 商业写字楼智能化初步设计在2025年的智能化物业管理系统评估报告.docx
- DB32_T 4342-2022工业企业全过程环境管理指南.docx VIP
- 传感器数字式传感器详解.ppt VIP
- 马工程外国文学史第一章古代文学.pptx VIP
- 低空经济行业市场前景及投资研究报告:Joby,Archer,国内eVTOL产业.pdf VIP
- 《数据可视化技术》课件.ppt VIP
- Unit 1 Helping at home 第5课时 Part B Let’s learn&Listen and chant(教学设计)英语人教PEP版四年级上册.pdf
- 《普通遗传学》第9章近亲繁殖和杂种优势.ppt
文档评论(0)