第9章类型推断内容摘要:
用到类型表达式 S是把 中的每个变量 t用 S (t)代替 – 类型代换 S作用到类型指派 S = {x: S | x: } – 类型代换 S作用到 t项 结果 S M同 M的区别仅在 约束变元的类型 带类型变量的 类型推断 • 实例 定型断言 M:是 M:的 实例 , 如果存在类型代 换 S使得 S , M = S M并且 = S • 引理 如果定型断言 M:是可推导的 , 那么它的每个实例 S SM:S也是可推导的 带类型变量的 类型推断 合一算法 • 合一 如果 E是一个类型表达式之间的等式集合 , 如果对每 个等式 = E都有 S S, 那么类型代换 S合一 E • 例 E = {s = t v, t = v w} S = {t, v w, s, (v w) v} 代换结果 {(v w) v = (v w) v, v w = v w} S合一 E 带类型变量的 类型推断 • 最一般的合一代换 – 如果存在某个代换 T使得 R = TS, 那么 S比 R更一般 – 如果不存在比 S更一般的代换 , 则称 S是最一般的合一代换 – 最一般代换是使 E的每个等式的代换结果在语法上为真的最简单的方式 带类型变量的 类型推断 • 例 E = {s = t v, t = v w} 最一般的合一代换 S = {t, v w, s, (v w) v} 代换结果 {(v w) v = (v w) v, v w = v w} 另一个合一代换 S = {t, (w w) w, s, ((w w) w) (w w), v, w w} 代换结果 {((w w) w)(w w)=(w w) w(w w), (w w) w = (w w) w} 带类型变量的 类型推断 • 引理 令 E是类型表达式之间的任意等式集合。 存在一个算法 Unify, 使得如果 E是可合一的 ,那么 Unify(E)计算得出一个最一般的合一代换 .如果 E不可合一 , 那么 Unify(E)失败 • 如果 和 都是类型指派 , 那么合一可以用来找出最一般的代换 S, 使得 S S 都是合式的。 – 直接合一所有等式 = 的集合就可以了 , 其中 x: 并且 x: 带类型变量的 类型推断 • 递归算法 Unify 1. Unify() = 2. Unify(E {b1 = b2}) = if b1 b2 then f。第9章类型推断
相关推荐
,bgR— 混凝土和钢筋的标准强度。 1 )矩 形截面 bahaRxIM0( 9 - 17 ) bggnngnggggRxhIMnEEEE 0039。 39。 ( 9 - 18 ) 2 ) T 形截面 ① 翼缘板位于受拉区,按照宽度为 b 的矩形截面计算; ② 翼缘板位于受压区: 39。 ihx 按宽度为39。 ib 的矩形计算; 39。 ihx 按( 9
种子 胚 受精卵 精子 胚乳 (N) 2 N 孢子体世代 N 配子体世代 孢子体发达 配子体退化 裸子植物门的分类 现存裸子植物有 71属 800余种 , 我国有 41属 236种。 分 5 个纲 铁树纲 ( 苏铁纲 ) 银杏纲 松柏纲 ( 球果纲 ) 红豆杉纲 ( 紫杉纲 ) 买麻藤纲 铁树纲 (Cycadopsida) 铁树 ( Cycas revoluta) 铁树科 , 铁树属
教程 典型案例 —— 制作雕刻文字 案例小结 本案例制作了岩石上的雕刻文字效果,主要目的是练习通道的创建和编辑,在制作过程中应用了一些以后课程要讲到的知识点,读者只需按照步骤执行即可。 Photoshop CS2图像处理培训教程 蒙版的应用 Photoshop具有强大的图像处理功能,很大一部分都体现在蒙版技术的成熟与专业化上。 同时, Photoshop CS2中几乎所有的高级应用
表示法和多线表示法可组合使用。 例如 中断线 连接线中断可用于以下三种情况: ( 1)当穿越图面的连接线较长或穿越稠密区域时,允许将连接线中断,且在中断处加相应标记。 ( 2)去向相同的线组,可中断,且在中断处加适当标记。 ( 3)连接到另一张图上的连接线,应中断,且在中断处注明图号、张次、图幅分区代号等标记。 例如 91 电气图基本概念 二、电气图的分类 ( 1)表示功能关系的电气图