上次课程小结内容摘要:
的类型为 α , 则 p的类型是pointer(α) , 因此函数 deref(p)的类型应该是: α .pointer(α) → α () 即对于任何一个类型为 α 的对象,函数 deref(p)是将指向 α 对象的一个指针类型映射到该对象。 deref习惯上也被称为脱引用。 1 多态函数、类型变量与类型推断 2 含多态函数语言的文法 多态函数与单态函数的本质区别是形参不但可以是常量也可以是变量。 因此对 ()和 ()的文法进行扩充,将含有类型变量的类型定义引入产生式。 P → D。 E D → D。 D | id : Q Q → | T () T → T 39。 →39。 T | T T | unaryconstructor(T) | basictype | typevariable | (T) E → E(E) | E, E | id 此扩充与将数据的简单变量扩充为含有数组元素类似。 首先,文法将原来的单态类型 T扩展为多态类型 Q, Q除了包括 T产生式的全部,又引入了受约束的类型变量。 同时 T产生式中增加了类型变量,即将类型变量引入类型。 引入数组元素后的赋值句文法 A → V := E V → id[EL] | id EL→ EL , E | E E → E + E | ( E ) | V 2 含多态函数语言的文法(续 1) 例 按文法 ()书写的一个程序如下: P → D。 E D → D。 D | id : Q Q → | T () T → T 39。 →39。 T | T T | unaryconstructor(T) | basictype | typevariable | (T) E → E(E) | E, E | id deref : α .pointer(α) → α。 q : pointer(pointer(int))。 defef(deref(q))。 首先声明 deref和 q,然后是函数调用 defef(deref(q)),其中内层函数调用的返回值作为外层调用的实参。 显然,两个相同的函数在不同位置的出现具有不同的参数类型和返回值类型。 2 含多态函数语言的文法(续 2) deref : α .pointer(α)→α。 q : pointer(pointer(int))。 defef(deref(q))。 P→D。 E D→D。 D | id : Q Q→ |T () T→T 39。 →39。 T|T T|unaryconstructor(T) |basictype|typevariable|(T) E→E(E)|E,E|id (a) 函数调用的语法树→(作用于)函数名 参数(b) deref ( deref (int)) 的语法树deref0 →iderefi q→0(c) deref(deref(int)) 语法树上各节点的类型deref0 →derefi qpointer (αi) → αipointer (pointer(int) )pointer(α0)→α0i αi= pointer(int)→0α0=int函数名作用于参数得到函数返回值 每次引入一个固定变元 结 束( 2020年 4月 29日) “ 五一 ” 节快乐。 (五一后第一周两次课。 ) 多态函数的简单回顾 • 多态函数、类型变量与类型推断 • 含多态函数语言的文法 deref : α .pointer(α)→α。 q : pointer(pointer(int))。 defef(deref(q))。 (b) deref ( deref (int)) 的语法树deref0 →iderefi q→0P→D。 E D→D。 D | id : Q Q→ |T () T→T 39。 →39。 T|T T|unaryconstructor(T) |basictype|typevariable|(T) E→E(E)|E,E|id P → D。 E D → D。 D | id : Q Q → | T () T → T 39。 →39。 T | T T | unaryconstructor(T) | basictype | typevariable | (T) E → E(E) | E, E | id (c) deref(deref(int)) 语法树上各节点的类型deref0 →derefi qpointer (αi) → αipointer (pointer(int) )pointer(α0)→α0i αi= pointer(int)→0α0=int• 每次引入一个新类型变量 • 替换变量试图得到匹配 • 保留替换结果以继续匹配 代换、实例与合一 多态函数类型检查的一般方法:首先设法消除类型变量,然后判定消除类型变量后的类型表达式是否结构等价。 具体有三点与单态的类型检查不同: (1) 消除约束变元 类型表达式中约束变元在语法树中的每次出现均要被替换为自由变元,且同一类型表达式的多态函数的不同出现,变元可以有不同的类型。 方法是每引入一个多态类型表达式,就为变元引入一个新类型变量。 如将 (α)→α 改为 pointer(α 0)→α 0或pointer(α i)→α i,从而消除了全称量词和约束变元。 代。上次课程小结
相关推荐
⒈ 请到保险公司指定的医保定点医疗机构就医。 ⒉ 请妥善填写申请书各项内容,被保险人/ 连带被保险人请在申请人签名处亲笔签名。 ⒉ 就医时请勿忘使用医保卡。 ⒊ 连带被保险人与被保险人同时申请理赔时,请分别填写申请书。 ⒊ 就医时请勿忘索取药品清单、各类检查报告单等材料。 关系:复核签名:申请人签名: 日期: 初审签名: 日期:⒋ 根据签定的保险合同规定,各类药房购药将不予理赔。 ⒋
可制造设计、 CAD、 PDM….. 2. 采用敏捷制造:成组技术、可重组制造、柔性加工 3 对市场周密的调查,建立客户数据库。 备货生产方式和定货生产方式( 1) 1. 备货生产方式 基础:对市场的预测 特点:批量生产、暂存仓库,大批量的轮番生产,生产率很高,组织生产较为复杂 缺点:风险大、可能造成积压或脱销 2. 定货生产方式 特点 : (1) 规格、数量、质量、交货期均不同
源性死亡(例) 0 2 联合终点事件( %) 出血事件( %) 大出血( %) 白细胞下降发生率( %) 泰嘉有更优趋势 两组 MACE事件的 KaplanMeier曲线 中国患者出血的附加危险因素 低体重是 ACS患者出血的重要危险因素 按欧美的体重标准, 95%的中国人低于中位数体重(美国的 50百分位体重近似于中国的 95百分位体重)
前 召開說明記者會。 → 上午 9→ 12時 、 下午 2→ 5時。 → 對於上市公司應代國外企業辦理之記者會,若國 外法令有時間限制之規定時,上市公司得配合國 外企業之時限同時對外辦理。 *例外 :有下列情事者,應於 收盤後 於 本公司 召開記者會。 23 *例外 : → 第七款 經董事會決議合併、撤銷合併、分割、收購 、股份受讓等情事者,應於 董事會決議後 赴本公司 召開說明記者會
MP4格式要求用 )。 ❹ 单个文件的大小不超过 500M。 ❷ ❸ ❹ 打开“资源上传”页面,点击“ ”,在弹出的窗口中选择需要上传的文件, 在选择窗口中可单选或多选,如图。 选择好文件后,可在“资源上传”页面的“上传 文件列表”中显示出来。 这时候还可以点击该列表中的“取消”链接来取消该文件的上传,如 图。 图 图 该项资源只选取视频文件“议论文写作如何做到“有我”之思维篇