正在加载图片...
人第三部分;第10章 sual Prolog语言元素 10.1类型 类型以子类型层次结构进行组织。子类型用来引入包容多态性:希望某种类 型的一个值能够同样接受任意的一个子类型值的任何上下文。或者我们倒过来说, 在需要时把一定类型的值自动地转化为任意超类型,这样可以不需要显式的类型 转换而访问该超级类型。 子类型可源于除代数数据类型外的其它任意数值类型。源于代数数据类型的 类型是同义类型而不是子类型,也就是说它们是同一类型而不是一子类型。 子类型的概念与子集概念密切相关。但是特别值得注意的是,尽管一个类型 是另一类型子集的精确描述,但它并不需要成为一个子类型。一个类型只在特别 声明时才是另一类型的子类型。例如 domains t1是一个整型变量,取值从1到17(包括端点在内) 同样,t2取值从5到13,但是t2不是t1的子类型。另 t2=[5.13].、外,t3(包含与t2-样的取值则是t的子类型,因 t3=t1[5.13].为这是声明了的。 2004.11.3 A|程序设计第三部分:第10章 Visual Prolog语言元素 2004.11.3 AI程序设计 4 10.1 类型 类型以子类型层次结构进行组织。子类型用来引入包容多态性:希望某种类 型的一个值能够同样接受任意的一个子类型值的任何上下文。或者我们倒过来说, 在需要时把一定类型的值自动地转化为任意超类型,这样可以不需要显式的类型 转换而访问该超级类型。 子类型可源于除代数数据类型外的其它任意数值类型。源于代数数据类型的 类型是同义类型而不是子类型,也就是说它们是同一类型而不是一子类型。 子类型的概念与子集概念密切相关。但是特别值得注意的是,尽管一个类型 是另一类型子集的精确描述,但它并不需要成为一个子类型。一个类型只在特别 声明时才是另一类型的子类型。例如 domains t1 = [1..17]. t2 = [5..13]. t3 = t1 [5..13]. t1是一个整型变量,取值从1到17(包括端点在内)。 同样,t2取值从5到13,但是t2不是t1的子类型。另 外,t3 (包含与t2一样的取值)则是t1的子类型,因 为这是声明了的
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有