函数式编程语言、编程和程序验证内容摘要:
type student = { name : string。 age : int。 score : real } type student 记录是具有标签的元组 函数式语言 SML及编程简介 • 例 4(多态类型) fun gcd(m, n) = if m = 0 then n else gcd(n mod m, m)。 其中的 if … then …else 是一个内部定义的多态函数 if … then …else = fn : bool a a a 其中 a是类型变量,类型变量以撇号开始 函数式语言 SML及编程简介 • 例 4(多态函数)取二元组的第 1元和第 2元 fun fst(x, y) = x。 val fst = fn : a b a fun snd(x, y) = y。 val snd = fn : a b b 函数式语言 SML及编程简介 • 表的简介 – 表( list)是相同类型元素的有限序列 – 如: [3, 5, 9], [ (1, “one”), (2, “two”), (3, “three”) ] – 表的构造符 空表: [ ] 在已有的表前加入一个元素: :: 9 :: [ ] = [9], 5 :: [9] = [5, 9] – 基本的表函数 null(测试空表)、 hd(返回表头元素)、 tl(返回非空表的表尾)、 length(返回表长) 函数式语言 SML及编程简介 • 例 5(表类型)计算表的长度 fun length [ ] = 0 | length (x :: xs) = 1 + length xs。 val length = fn : a list int length [3, 5, 9] length [“one”, “two”, “three”] 3 : int 3 : int – 竖线“ | ”将函数声明分成两子句,各处理一个模式 – length是一个多态类型的函数 – list相当于一个类型构造符 函数式语言 SML及编程简介 • 例 6(表类型)插入排序 fun insert(x, [ ]) : real list = [ x ] | insert(x, y :: ys) = if x = y then x :: y :: ys else y :: insert(x, ys)。 val insert = fn : real real list real list – 排序需要用到两个变元的比较运算,关系运算“ =”不是多态的,因此 insert不是多态函数 – 在第 1行上给出函数的结果类型就是为了避免类型推断出现错误 函数式语言 SML及编程简介 • 例 7(表类型)基于表的一个高阶函数 fun map f [ ] = [ ] | map f (x :: xs) = (f x) :: map f xs。 val map = fn : (a b) (a list b list) – 算子 map把函数 f 应用到表的每个元素上,即 map f [x1, …, x n] = [f x1, …, f x n] – map f的结果是一个新函数 函数式语言 SML及编程简介 • 例 8 静态作用域(静态绑定) let val x = 2 fun f y = x + y /* x是函数 f的非局部变。函数式编程语言、编程和程序验证
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
北京协和医院急诊科朱华栋huadongzhu@hotmailcom
纠纷依然很多 人员依然短缺 其他 依然。 依然有不如意的地方 2020/11/23 21 已进入质量时代 — 质量决定生存 医疗质量 科研质量 教学质量 服务质量 生活质量 2020/11/23 22 危重病医学的发展史 1970年以后北京、天津的一些医院创建了“三衰病房”、“集中观察室”等治疗危重病的单元 1982年在曾宪九教授的指导下
动量守恒定律的典型模型及其应用
). • (A)在任意时刻 ,A、 B两物体的加速度大小相等 • (B)弹簧伸长到最长时 ,A、 B的动量相等 • (C)弹簧恢复原长时 ,A、 B的动量相等 • (D)弹簧压缩到最短时 ,系统的总动能最小 ABD P215 新题快递 . • 图中,轻弹簧的一端固定,另一端与滑块 B相连, B静止在水平直导轨上,弹簧处在原长状态。 另一质量与 B相同滑块 A,从导轨上的 P点以某一初速度向
冯涛教授湖南科技大学
达就是传递信息 , 借助某种媒介 , 使信 息在信源和信宿之间流动。 创新点的表达就是要满足源宿双方对于 创新的需求。 根据创新点 依托的层次 , 可以归为二类 创新点的类型和作用 另一类是 内容创新、 技术创新 或应用创新。 一类是 方法创新、 原理创新、 基础创新 前后照应 , 设问置疑 , 巧答善解 , 逻辑圆通。 语言准确 , 高度提炼 , 一目了然 , 让人省心。 创新点表达的几条原则
你发现丁丁画的这些小动物什么地方有问题?
,他打开门一看,是小鸡、大象、小兔子,原来小马虎画的小鸭小尖嘴,小兔子没有圆耳朵,马没有尾巴,它们对着小马虎大叫:“还我嘴巴”,“还我耳朵”,“还我尾巴”,小马虎吓得逃回了家 …… • 丁丁在旅途中碰到了什么麻烦事。 • 丁丁从马虎国旅行回来后会怎么想