第6章递归类型内容摘要:
则 F1(g f ) = F1(g) F1(f ) 0 ()FAid 下面都用 F,根据参数 可知道它是 F0还是 F1 归纳和余归纳 • 基于函子来定义单类代数 – 令 F是函子, F的一个代数(简称 F代数)是一个序对 U, a,其中 U是集合,称为该代数的载体, a是函数 a : F(U) U,称为该代数的代数结构(也称为运算) • 例:自然数 自然数上的零和后继函数 0 : 1 N 和 S : N N 形成 函子 F(X) =1+X 的 F代数 N, [0, S] : 1+N N N [0, S] 1+ N 1 N Inleft S 0 Inright 归纳和余归纳 • 例:二叉树 以集合 A的元素标记节点的二叉树的集合用 tree(A)表示 – 空树 nil可用函数 nil : 1 tree(A)表示 – node : tree(A) A tree(A) tree(A)表示从两棵子树和一个节点标记构造一棵树 – nil和 node形成函子 F(X) =1+ (X A X)的一个代数 [nil, node] : 1 + (tree(A) A tree(A)) tree(A) 归纳和余归纳 • 用函子和交换图表来表示代数同态 令 – F是函子 – a : F(U) U和 b : F(V) V是两个函数 则 –F代数 U, a到 V, b的 同态是函数 f : U V, 满足 f a = b F(f ) • 可进一步定义初始代数 F(f ) F(U) U V b a f F(V) 归纳和余归纳 • 定义余代数 令 F是函子, F的一个余代数(简称 F余代数)是一个序对 U, c,其中 – U是集合,称为该余代数的载体 – c是函数 c : U F(U), 称为该余代数的余代数 结构(也称为运算) 由于余代数经常描述 动态系统,载体也叫做 状态空间 Z f, g X Y X Y Proj1 g f Proj2 归纳和余归纳 • 余代数和代数的区别 本质上这是构造和观察之间的区别 – 代数由载体集合 U和射入 U的函数 a : F(U) U 组成,它告知怎样构造 U的元素 – 余代数由载体集合 U和逆向的函数 c : U F(U)组成,此时不知道怎样形成 U的元素,仅有作用在 U上的操作,它给出关于 U的某些信息 归纳和余归纳 • 用函子和交换图表来表示余代数同态 令 – F是函子 – a : U F(U)和 b : V F(V)是两个函数 则 – F余代数 V, b到 U, a的 同态是一个函数 f : V U, 满足 a f = F(f ) b • 可进一步定义终结代数 F(f ) F(U) U V b a f F(V) 归纳和余归纳 • 例: 考虑有两个按键 value和 next的机器 – 可以用状态空间 U上的余代数 value, next : U A U 来描述,其中 – value, next由两个函数 value : U A和 next : U U组成 – 连续地交替按 next键和 value键,可以产生无限序列 (a1, a2, …) – 它可以看成 N A上的一个函数,其中 ai = value(next(i)(u)) A 递 归 类 型 递归类型总揽 • 在 PCF的类型中加入递归类型 ::= b | t | unit | + | | | t. 其中 t是类型变量 – t.的解释 在递归的类型定义 t = 中, 引入 fix(t.) 来表示等式 t = 的一个解, 用 t.作为 fix(t.)的语法美化 – 类型表达式中出现变量会导致多态性,目前限于闭表达式 递 归 类 型 • 类型相等问题 对类型等式 t = 有两种可能的解释 – 等式左右两边是真正不可区分的类型 这时类型相等变。第6章递归类型
相关推荐
的比重,用 (1y) 表示无风险投资的比重 : ,300$ 000,210$ y ,300$000,90$1 y,300$ 400,113$: E ,300$600,96$: BINVESTMENTS | BODIE, KANE, MARCUS 614 无风险资产 • 只有政府可以发行无违约风险的债券。 –实际中无风险资产是一种指数化债券
面向数据流的软件设计方法 17 I D A C E F G H B J 输出流 输入流 变换流 划分流界例子 169。 Copyright Xinjun Mao 面向数据流的软件设计方法 18 步骤 5. 执行一级分解 任务 : 导出三个层次结构的软件结构 – 底层模块:用于输入、输出和计算等基本功能 – 中间层模块:协调、控制底层模块的工作 – 高层模块:用于协调和控制所有的从属模块
商品集中摆放 考虑商品的搬运情况和安全性 特色分区,提高竞争力 便于清点 37 “ 三二原则 ” 三组双面货架相连,侧面两组端架。 有利于展示整体效果。 “ 垂直原则 ” 周边放单面货架,中间放双面货架。 有利于充分利用空间,选货方便快捷,整体效果最佳。 38 收银台的设计 设计原则: ( 1)迅速快捷,便于顾客结账购买。 ( 2)舒服,让消费者感觉舒适,无局促感。 (
产品瑕疵责任 2. 产品缺陷责任 23 2. 产品缺陷责任 ( 1) 承担产品缺陷责任的条件 ( 2) 免责条件 ( 3) 赔偿主体和范围 ( 4) 产品质量纠纷解决途径 ( 二 ) 行政责任和刑事责任 24 企业社会公德:管理与伦理道德 伦理与道德作为人类文明的基本因子,是指评价人类行为善与恶的社会价值形态,在日常生活中具体表现为一定的行为规范和准则 任何社会任何组织要想长期生存
存储类型 在 C++语言中,每个变量有两个属性: 类型:变量所存储的数据类型 存储类型:变量所存储的区域: 标准的变量定义: 存储类型 数据类型 变量名; 存储类型: 自动变量: auto 寄存器变量: register 外部变量: extern 静态变量: static 《 程序设计 》 程序设计 52 auto 在函数内或块内定义的变量缺省时是auto。 如